Skip to content
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

Major backend files structure change. #64

Merged
merged 10 commits into from
Dec 9, 2024
Prev Previous commit
Next Next commit
Refactor import paths and remove unused configurations
- Removed the "playground/src" directory from the Pyright configuration to streamline type checking.
- Updated import statements across multiple files to reflect the new structure under "omni_models" and "utils", enhancing code organization and maintainability.
- Consolidated imports in various modules, ensuring consistency and clarity in the codebase.
- Improved overall project structure by aligning imports with the new directory hierarchy.
ElemarJR committed Dec 8, 2024
commit 1bc519259e4e68700ea749c080238372b4c23e63
2 changes: 1 addition & 1 deletion backend/api/src/analytics/approved_vs_actual.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from models.analytics import compute_approved_vs_actual
from omni_models.analytics import compute_approved_vs_actual

def resolve_approved_vs_actual(_, info, start, end):
return compute_approved_vs_actual(start, end)
2 changes: 1 addition & 1 deletion backend/api/src/analytics/forecast.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from models.analytics.forecast import compute_forecast
from omni_models.analytics.forecast import compute_forecast

def resolve_forecast(_, info, date_of_interest = None, filters = None):
return compute_forecast(date_of_interest, filters)
6 changes: 3 additions & 3 deletions backend/api/src/analytics/performance_analysis.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
from datetime import datetime
import models.analytics.performance_analysis
from models.analytics.performance_analysis import PerformanceAnalysis, TotalsPreContracted, TotalsRegular
import omni_models.analytics.performance_analysis
from omni_models.analytics.performance_analysis import PerformanceAnalysis, TotalsPreContracted, TotalsRegular

def resolve_performance_analysis(_, info, date_of_interest: str | datetime):
return models.analytics.performance_analysis.compute_performance_analysis(date_of_interest)
return omni_models.analytics.performance_analysis.compute_performance_analysis(date_of_interest)

def resolve_performance_analysis_pivoted(performance_analysis: PerformanceAnalysis, info):
return {
2 changes: 1 addition & 1 deletion backend/api/src/analytics/revenue_tracking.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from datetime import datetime, date
from models.analytics.revenue_tracking import compute_revenue_tracking
from omni_models.analytics.revenue_tracking import compute_revenue_tracking

def resolve_revenue_tracking(
root, info,
2 changes: 1 addition & 1 deletion backend/api/src/analytics/timeliness_review.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from models.analytics import compute_timeliness_review
from omni_models.analytics import compute_timeliness_review

def resolve_timeliness_review(_, info, date_of_interest, filters=None):
return compute_timeliness_review(date_of_interest, filters)
2 changes: 1 addition & 1 deletion backend/api/src/analytics/week_review.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from models.analytics import week_review
from omni_models.analytics import week_review

def resolve_week_review(_, info, date_of_interest, filters=None):
return week_review.compute_week_review(date_of_interest, filters)
8 changes: 5 additions & 3 deletions backend/api/src/app.py
Original file line number Diff line number Diff line change
@@ -14,12 +14,14 @@
from settings import auth_settings
from settings import graphql_settings

from api.queries import query_types, type_defs
from api.mutations import mutation

import logging
import argparse
import sys
from api.execution_stats import ExecutionStatsExtension

from queries import query_types, type_defs
from mutations import mutation
from execution_stats import ExecutionStatsExtension

import globals

1 change: 1 addition & 0 deletions backend/api/src/datasets/__init__.py
Original file line number Diff line number Diff line change
@@ -5,6 +5,7 @@
from .datasets_set import resolve_this_week
from .datasets import resolve_datasets
from .ontology import resolve_ontology

def setup_query_for_datasets(query: QueryType):
query.set_field("timesheet", resolve_timesheet)
query.set_field("thisWeek", resolve_this_week)
2 changes: 1 addition & 1 deletion backend/api/src/datasets/datasets_set.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from .timesheets import resolve_timesheet

from api.utils.fields import get_selections_from_info
from utils.fields import get_selections_from_info

from typing import Any, Dict, List
from graphql import GraphQLResolveInfo
2 changes: 1 addition & 1 deletion backend/api/src/datasets/insights.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import pandas as pd
from typing import Dict, Any, List
from api.utils.fields import get_requested_fields_from
from utils.fields import get_requested_fields_from

import globals

2 changes: 1 addition & 1 deletion backend/api/src/datasets/ontology.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import pandas as pd
from typing import Dict, Any, List, Union
from api.utils.fields import get_requested_fields_from
from utils.fields import get_requested_fields_from

import globals

4 changes: 2 additions & 2 deletions backend/api/src/datasets/timesheets.py
Original file line number Diff line number Diff line change
@@ -6,8 +6,8 @@

from graphql import GraphQLResolveInfo

from api.utils.fields import build_fields_map, get_requested_fields_from, get_selections_from_info
from models.helpers.slug import slugify
from utils.fields import build_fields_map, get_requested_fields_from, get_selections_from_info
from omni_utils.helpers.slug import slugify

import globals

12 changes: 6 additions & 6 deletions backend/api/src/domain/account_managers.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
from api.datasets.timesheets import compute_timesheet
from api.domain.cases import compute_cases
from api.domain.active_deals import compute_active_deals
from datasets.timesheets import compute_timesheet

from api.utils.fields import build_fields_map
from domain.cases import compute_cases
from domain.active_deals import compute_active_deals
from utils.fields import build_fields_map

from models.analytics.forecast import compute_forecast
from models.domain import WorkerKind
from omni_models.analytics.forecast import compute_forecast
from omni_models.domain import WorkerKind
import globals


6 changes: 3 additions & 3 deletions backend/api/src/domain/cases.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from api.utils.fields import build_fields_map
from api.datasets.timesheets import compute_timesheet
from models.analytics.forecast import compute_forecast
from utils.fields import build_fields_map
from datasets.timesheets import compute_timesheet
from omni_models.analytics.forecast import compute_forecast
import globals


6 changes: 3 additions & 3 deletions backend/api/src/domain/clients.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from api.datasets.timesheets import compute_timesheet
from api.utils.fields import build_fields_map
from models.analytics.forecast import compute_forecast
from datasets.timesheets import compute_timesheet
from utils.fields import build_fields_map
from omni_models.analytics.forecast import compute_forecast
import globals

from ariadne import ObjectType
12 changes: 6 additions & 6 deletions backend/api/src/domain/consultants_engineers.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
from datetime import datetime
from api.datasets.timesheets import compute_timesheet
from api.domain.cases import compute_cases
from api.utils.fields import build_fields_map
from models.analytics.timeliness_review import compute_timeliness_review
from models.domain import WorkerKind
import globals
from datasets.timesheets import compute_timesheet
from omni_models.domain.cases import compute_cases
from utils.fields import build_fields_map
from omni_models.analytics.timeliness_review import compute_timeliness_review
from omni_models.domain import WorkerKind

import globals

def resolve_consultants_and_engineers(_, info):
all_workers = sorted(globals.omni_models.workers.get_all().values(), key=lambda worker: worker.name)
6 changes: 3 additions & 3 deletions backend/api/src/domain/sponsors.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from api.datasets.timesheets import compute_timesheet
from models.analytics.forecast import compute_forecast
from datasets.timesheets import compute_timesheet
from omni_models.analytics.forecast import compute_forecast
import globals
from api.utils.fields import build_fields_map, get_requested_fields_from
from utils.fields import build_fields_map, get_requested_fields_from

def _add_client(original):
result = dict(original)
2 changes: 1 addition & 1 deletion backend/api/src/domain/user.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from models.domain import WorkerKind
from omni_models.domain import WorkerKind
import globals


4 changes: 2 additions & 2 deletions backend/api/src/globals.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from models.omnimodels import OmniModels
from models.omnidatasets import OmniDatasets
from omni_models.omnimodels import OmniModels
from omni_models.omnidatasets import OmniDatasets
from datetime import datetime

omni_models: OmniModels = OmniModels()
8 changes: 4 additions & 4 deletions backend/api/src/queries.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
from ariadne import QueryType, gql
from pathlib import Path

from api.domain import setup_query_for_domain
from api.datasets import setup_query_for_datasets
from api.analytics import setup_query_for_analytics
from api.inconsistencies import resolve_inconsistencies
from domain import setup_query_for_domain
from datasets import setup_query_for_datasets
from analytics import setup_query_for_analytics
from inconsistencies import resolve_inconsistencies

def load_schema():
schema_files = [
23 changes: 12 additions & 11 deletions backend/models/src/omni_models/omnidatasets.py
Original file line number Diff line number Diff line change
@@ -2,17 +2,18 @@
from datetime import datetime, timedelta
from calendar import monthrange
import pandas as pd
from typing import Tuple

from models.base.powerdataframe import SummarizablePowerDataFrame
from models.datasets.insights_dataset import InsightsDataset
from models.datasets.omni_dataset import OmniDataset
from models.datasets.ontology_entries_dataset import OntologyEntriesDataset
from models.datasets.tasks_dataset import TasksDataset
from models.datasets.timesheet_dataset import TimesheetDataset
from models.helpers.weeks import Weeks
from models.omnimodels import OmniModels
from omni_models.base.powerdataframe import SummarizablePowerDataFrame
from omni_models.datasets.insights_dataset import InsightsDataset
from omni_models.datasets.omni_dataset import OmniDataset
from omni_models.datasets.ontology_entries_dataset import OntologyEntriesDataset
from omni_models.datasets.tasks_dataset import TasksDataset
from omni_models.datasets.timesheet_dataset import TimesheetDataset
from omni_models.omnimodels import OmniModels

import models.helpers.slug as sl
import omni_utils.helpers.slug as sl
from omni_utils.helpers.weeks import Weeks


def get_time_part_from_slug(slug: str) -> str:
@@ -21,7 +22,7 @@ def get_time_part_from_slug(slug: str) -> str:
return slug.split('-', 1)[1]


def get_quarter_dates(quarter_slug: str) -> (datetime, datetime):
def get_quarter_dates(quarter_slug: str) -> Tuple[datetime, datetime]:
q, year = quarter_slug.split('-')
year = int(year)
quarter = int(q[1])
@@ -40,7 +41,7 @@ def get_quarter_dates(quarter_slug: str) -> (datetime, datetime):

return start_date, end_date

def get_semester_dates(semester_slug: str) -> (datetime, datetime):
def get_semester_dates(semester_slug: str) -> Tuple[datetime, datetime]:
q, year = semester_slug.split('-')
year = int(year)
quarter = int(q[1])
15 changes: 7 additions & 8 deletions backend/models/src/omni_models/omnimodels.py
Original file line number Diff line number Diff line change
@@ -1,21 +1,20 @@
from models.domain.active_deals import ActiveDealsRepository
from models.semantic import Insights, Ontology, TimeTracker, TasksManager, SalesFunnelB2B, CRM
from models.domain import (
from omni_models.domain.active_deals import ActiveDealsRepository
from omni_models.semantic import Insights, Ontology, TimeTracker, TasksManager, SalesFunnelB2B, CRM
from omni_models.domain import (
WorkersRepository,
ClientsRepository,
CasesRepository,
ProjectsRepository,
SponsorsRepository,
OffersRepository
)
from omni_models.base.powerdataframe import SummarizablePowerDataFrame

from models.helpers.weeks import Weeks
from omni_utils.helpers.weeks import Weeks
from omni_utils.decorators import cache

import pandas as pd
from models.base.powerdataframe import SummarizablePowerDataFrame

from decorators import cache
from datetime import datetime
import pandas as pd


class OmniModels:
1 change: 0 additions & 1 deletion backend/pyrightconfig.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
{
"include": [
"api/src",
"playground/src",
"utils/src",
"models/src"
],