Skip to content

chore: sort imports #206

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Jun 2, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ repos:
- LICENSE_HEADER
- --use-current-year
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0
rev: v5.0.0
hooks:
- id: end-of-file-fixer
- id: trailing-whitespace
Expand Down
27 changes: 13 additions & 14 deletions mostlyai/qa/_accuracy.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,38 +18,37 @@
import logging
import math
import time
from typing import Any, Literal
from collections.abc import Callable, Iterable
from typing import Any, Literal

import numpy as np
import pandas as pd
import phik.phik
import scipy.cluster
import scipy.stats
from joblib import Parallel, delayed, parallel_config, cpu_count
from joblib import Parallel, cpu_count, delayed, parallel_config
from plotly import graph_objs as go

from mostlyai.qa._common import (
CHARTS_COLORS,
CHARTS_FONTS,
CTX_COLUMN_PREFIX,
EMPTY_BIN,
MAX_BIVARIATE_CTX_PLOTS,
MAX_BIVARIATE_NXT_PLOTS,
MAX_BIVARIATE_TGT_PLOTS,
MAX_ENGINE_RARE_CATEGORY_THRESHOLD,
MAX_TRIVARIATES,
NA_BIN,
MAX_UNIVARIATE_PLOTS,
MIN_RARE_CAT_PROTECTION,
NA_BIN,
NXT_COLUMN_PREFIX,
OTHER_BIN,
RARE_BIN,
MAX_UNIVARIATE_PLOTS,
MAX_BIVARIATE_TGT_PLOTS,
MAX_BIVARIATE_CTX_PLOTS,
MAX_BIVARIATE_NXT_PLOTS,
CTX_COLUMN_PREFIX,
TGT_COLUMN_PREFIX,
NXT_COLUMN_PREFIX,
MAX_ENGINE_RARE_CATEGORY_THRESHOLD,
TGT_COLUMN,
TGT_COLUMN_PREFIX,
)
from plotly import graph_objs as go

from mostlyai.qa._filesystem import TemporaryWorkspace, Statistics
from mostlyai.qa._filesystem import Statistics, TemporaryWorkspace

_LOG = logging.getLogger(__name__)

Expand Down
2 changes: 1 addition & 1 deletion mostlyai/qa/_coherence.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.

from joblib import Parallel, cpu_count, delayed, parallel_config
import pandas as pd
from joblib import Parallel, cpu_count, delayed, parallel_config

from mostlyai.qa._accuracy import (
calculate_accuracy,
Expand Down
10 changes: 5 additions & 5 deletions mostlyai/qa/_distances.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,19 +14,19 @@

import logging
import time
import numpy as np

import networkx as nx
from sklearn.neighbors import NearestNeighbors
import numpy as np
from joblib import cpu_count
from plotly import graph_objs as go
from sklearn.cluster import SpectralClustering
from sklearn.neighbors import NearestNeighbors

from mostlyai.qa._common import (
CHARTS_COLORS,
CHARTS_FONTS,
)
from sklearn.cluster import SpectralClustering
from mostlyai.qa._filesystem import TemporaryWorkspace
from plotly import graph_objs as go


_LOG = logging.getLogger(__name__)

Expand Down
4 changes: 2 additions & 2 deletions mostlyai/qa/_embeddings.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,12 @@
# limitations under the License.

import logging

import numpy as np
import pandas as pd
from pandas.core.dtypes.common import is_datetime64_dtype, is_numeric_dtype
from sklearn.decomposition import PCA
from sklearn.preprocessing import QuantileTransformer, normalize
from pandas.core.dtypes.common import is_numeric_dtype, is_datetime64_dtype

from mostlyai.qa._common import (
EMPTY_BIN,
Expand All @@ -26,7 +27,6 @@
)
from mostlyai.qa.assets import load_embedder


_LOG = logging.getLogger(__name__)


Expand Down
7 changes: 4 additions & 3 deletions mostlyai/qa/_html_report.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,15 @@

import pandas as pd
from jinja2 import Environment, FileSystemLoader
from mostlyai.qa._accuracy import trim_label, filter_uni_acc_for_plotting, filter_biv_acc_for_plotting

from mostlyai.qa._accuracy import filter_biv_acc_for_plotting, filter_uni_acc_for_plotting, trim_label
from mostlyai.qa._common import TGT_COLUMN_PREFIX
from mostlyai.qa._filesystem import TemporaryWorkspace
from mostlyai.qa.assets import (
HTML_ASSETS_PATH,
read_html_assets,
HTML_REPORT_TEMPLATE,
HTML_REPORT_EARLY_EXIT,
HTML_REPORT_TEMPLATE,
read_html_assets,
)
from mostlyai.qa.metrics import ModelMetrics

Expand Down
13 changes: 6 additions & 7 deletions mostlyai/qa/_sampling.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,27 +27,26 @@
# limitations under the License.
import logging
import random
from typing import Any
import warnings
from pandas.core.dtypes.common import is_numeric_dtype, is_datetime64_dtype
from typing import Any

import numpy as np
import pandas as pd
import pyarrow as pa
from pandas.core.dtypes.common import is_datetime64_dtype, is_numeric_dtype

from mostlyai.qa._embeddings import encode_data
from mostlyai.qa._accuracy import bin_data
from mostlyai.qa._common import (
ACCURACY_MAX_COLUMNS,
COUNT_COLUMN,
CTX_COLUMN_PREFIX,
EMBEDDINGS_MAX_COLUMNS,
TGT_COLUMN_PREFIX,
NXT_COLUMN_PREFIX,
COUNT_COLUMN,
ACCURACY_MAX_COLUMNS,
TGT_COLUMN_PREFIX,
)
from mostlyai.qa._embeddings import encode_data
from mostlyai.qa.assets import load_tokenizer


_LOG = logging.getLogger(__name__)


Expand Down
10 changes: 5 additions & 5 deletions mostlyai/qa/_similarity.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,18 +17,18 @@

import numpy as np
import plotly.graph_objects as go
import scipy.stats
from sklearn.decomposition import PCA
from sklearn.ensemble import HistGradientBoostingClassifier
from sklearn.metrics import roc_auc_score
from sklearn.metrics.pairwise import cosine_similarity
from sklearn.model_selection import StratifiedKFold

from mostlyai.qa._common import (
CHARTS_FONTS,
CHARTS_COLORS,
CHARTS_FONTS,
)
from mostlyai.qa._filesystem import TemporaryWorkspace
import scipy.stats
from sklearn.model_selection import StratifiedKFold
from sklearn.ensemble import HistGradientBoostingClassifier
from sklearn.metrics import roc_auc_score

_LOG = logging.getLogger(__name__)

Expand Down
2 changes: 1 addition & 1 deletion mostlyai/qa/logging.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.

import sys
import logging
import sys

_LOG = logging.getLogger(__name__.rsplit(".", 1)[0]) # get the logger with the root module name (mostlyai.qa)

Expand Down
2 changes: 1 addition & 1 deletion mostlyai/qa/metrics.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.

from pydantic import BaseModel, Field, field_validator, ConfigDict
from pydantic import BaseModel, ConfigDict, Field, field_validator


class CustomBaseModel(BaseModel):
Expand Down
3 changes: 2 additions & 1 deletion mostlyai/qa/random_state.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,9 @@

import logging
import os
import struct
import random
import struct

import numpy as np

_LOG = logging.getLogger(__name__)
Expand Down
46 changes: 23 additions & 23 deletions mostlyai/qa/reporting.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,25 +18,25 @@

import numpy as np
import pandas as pd
from pandas.core.dtypes.common import is_numeric_dtype, is_datetime64_dtype
from pandas.core.dtypes.common import is_datetime64_dtype, is_numeric_dtype

from mostlyai.qa import _distances, _similarity, _html_report
from mostlyai.qa import _distances, _html_report, _similarity
from mostlyai.qa._accuracy import (
bin_data,
binning_data,
calculate_correlations,
plot_store_correlation_matrices,
calculate_univariates,
calculate_bin_counts,
calculate_bivariates,
calculate_categorical_uni_counts,
calculate_correlations,
calculate_numeric_uni_kdes,
calculate_trivariates,
plot_store_accuracy_matrix,
filter_uni_acc_for_plotting,
calculate_univariates,
filter_biv_acc_for_plotting,
calculate_numeric_uni_kdes,
calculate_categorical_uni_counts,
calculate_bin_counts,
plot_store_univariates,
filter_uni_acc_for_plotting,
plot_store_accuracy_matrix,
plot_store_bivariates,
plot_store_correlation_matrices,
plot_store_univariates,
)
from mostlyai.qa._coherence import (
calculate_distinct_categories_per_sequence,
Expand All @@ -46,24 +46,24 @@
plot_store_distinct_categories_per_sequence,
plot_store_sequences_per_distinct_category,
)
from mostlyai.qa.metrics import ModelMetrics, Accuracy, Similarity, Distances
from mostlyai.qa._sampling import (
prepare_data_for_accuracy,
prepare_data_for_coherence,
prepare_data_for_embeddings,
)
from mostlyai.qa._common import (
determine_data_size,
ProgressCallback,
PrerequisiteNotMetError,
check_min_sample_size,
NXT_COLUMN,
CTX_COLUMN_PREFIX,
TGT_COLUMN_PREFIX,
NXT_COLUMN,
REPORT_CREDITS,
TGT_COLUMN_PREFIX,
PrerequisiteNotMetError,
ProgressCallback,
ProgressCallbackWrapper,
check_min_sample_size,
determine_data_size,
)
from mostlyai.qa._filesystem import Statistics, TemporaryWorkspace
from mostlyai.qa._sampling import (
prepare_data_for_accuracy,
prepare_data_for_coherence,
prepare_data_for_embeddings,
)
from mostlyai.qa.metrics import Accuracy, Distances, ModelMetrics, Similarity

_LOG = logging.getLogger(__name__)

Expand Down
10 changes: 5 additions & 5 deletions mostlyai/qa/reporting_from_statistics.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,24 +17,24 @@

import pandas as pd

from mostlyai.qa import _accuracy, _sampling, _html_report
from mostlyai.qa import _accuracy, _html_report, _sampling
from mostlyai.qa._coherence import (
calculate_distinct_categories_per_sequence,
calculate_sequences_per_distinct_category,
plot_store_distinct_categories_per_sequence,
plot_store_sequences_per_distinct_category,
)
from mostlyai.qa._sampling import prepare_data_for_coherence
from mostlyai.qa._common import (
ProgressCallback,
REPORT_CREDITS,
PrerequisiteNotMetError,
ProgressCallback,
ProgressCallbackWrapper,
check_min_sample_size,
check_statistics_prerequisite,
determine_data_size,
REPORT_CREDITS,
ProgressCallbackWrapper,
)
from mostlyai.qa._filesystem import Statistics, TemporaryWorkspace
from mostlyai.qa._sampling import prepare_data_for_coherence

_LOG = logging.getLogger(__name__)

Expand Down
3 changes: 3 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -80,3 +80,6 @@ build-backend = "hatchling.build"
[tool.ruff]
target-version = "py310"
line-length = 120

[tool.ruff.lint]
extend-select = ["I"]
6 changes: 3 additions & 3 deletions tests/end_to_end/test_report.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,14 @@
# limitations under the License.

import uuid
from pathlib import Path
import warnings
from datetime import datetime, timedelta
from pathlib import Path

import pandas as pd
import numpy as np
import pandas as pd

from mostlyai import qa
from datetime import datetime, timedelta


def mock_data(n):
Expand Down
Loading