Skip to content

Commit

Permalink
FIX #72
Browse files Browse the repository at this point in the history
  • Loading branch information
eboileau committed Jan 26, 2024
1 parent 7d774a3 commit 5c326e5
Show file tree
Hide file tree
Showing 26 changed files with 136 additions and 191 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ tramp
# emacs projectiles files
.projectile

# directory configuration
.dir-locals.el

# backup
*.bak
*.gho
Expand Down
19 changes: 7 additions & 12 deletions server/src/scimodom/api/queries.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,7 @@
import os
import json

import scimodom.utils.specifications as specs

# import scimodom.database.queries as queries

import os
from pathlib import Path

from flask import request
from flask_cors import cross_origin
from sqlalchemy import select, func, and_, or_, not_, literal_column
Expand All @@ -28,7 +24,10 @@
Selection,
GenomicAnnotation,
)

from scimodom.services.importer import BEDImporter
from scimodom.utils.models import records_factory
from scimodom.utils.operations import get_op
import scimodom.utils.specifications as specs

prop_comparators = {
"startsWith": "istartswith",
Expand Down Expand Up @@ -380,10 +379,6 @@ def get_dataset():
def get_comparison(step):
"""Retrieve ..."""

from scimodom.services.importer import BEDImporter
from scimodom.utils.operations import get_op
from scimodom.utils.models import records_factory

# API call in compare, then pass as params to SPA components
# but sending all datasets may be too large?
# final call after dataset selection + query
Expand Down Expand Up @@ -501,7 +496,7 @@ def upload_file():

# TODO: define app.config['UPLOAD_PATH'] = UPLOAD_FOLDER
# ALLOWED_EXTENSIONS are dealt with PrimeVue FileUpload

# PEP8 import
from werkzeug.utils import secure_filename

upload = os.getenv("UPLOAD_PATH")
Expand Down
16 changes: 8 additions & 8 deletions server/src/scimodom/app.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
from logging.config import dictConfig

from flask_cors import CORS
from sqlalchemy.orm import scoped_session

from scimodom.api import api
from scimodom.app_singleton import create_app_singleton
from scimodom.database.database import make_session, init
from scimodom.frontend import frontend


def create_app():
"""Function factory to create Flask app."""
from logging.config import dictConfig
from flask_cors import CORS

from sqlalchemy.orm import scoped_session
from scimodom.database.database import make_session, init

app = create_app_singleton()
CORS(app)
Expand All @@ -20,9 +23,6 @@ def create_app():
app.session = scoped_session(session)
init(engine, lambda: app.session)

from scimodom.frontend import frontend
from scimodom.api import api

app.register_blueprint(api, url_prefix="/api/v0")
app.register_blueprint(frontend, url_prefix="/")

Expand Down
7 changes: 3 additions & 4 deletions server/src/scimodom/config.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
import os
import logging

from typing import ClassVar
import os
from pathlib import Path
from dotenv import load_dotenv
from typing import ClassVar

from dotenv import load_dotenv

DEFAULT_FRONTEND_PATH = (
Path(__file__).parent.parent.parent.parent.joinpath("client").joinpath("dist")
Expand Down
1 change: 1 addition & 0 deletions server/src/scimodom/database/database.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import os
from typing import Callable, Optional

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker, DeclarativeBase, Session
from sqlalchemy.engine import Engine
Expand Down
14 changes: 6 additions & 8 deletions server/src/scimodom/database/maintenance/add_all.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,22 +10,20 @@
to the DB in the short-term.
"""

import os
import json
import logging

import scimodom.utils.utils as utils

from pathlib import Path
from argparse import ArgumentParser, SUPPRESS
from concurrent.futures import ProcessPoolExecutor
from collections import defaultdict
from concurrent.futures import ProcessPoolExecutor
from functools import partial
import json
import logging
import os
from pathlib import Path
from subprocess import Popen, PIPE

from scimodom.config import Config
from scimodom.database.database import make_session
from scimodom.services.project import ProjectService
import scimodom.utils.utils as utils

logger = logging.getLogger(__name__)

Expand Down
13 changes: 6 additions & 7 deletions server/src/scimodom/database/maintenance/add_dataset.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,14 @@
project.
"""

from argparse import ArgumentParser, SUPPRESS
import logging

import scimodom.utils.utils as utils
import scimodom.database.queries as queries

from pathlib import Path

from sqlalchemy import select
from argparse import ArgumentParser, SUPPRESS

from scimodom.config import Config
from scimodom.database.database import make_session
from scimodom.services.dataset import DataService
from scimodom.services.annotation import AnnotationService
from scimodom.database.models import (
Project,
Taxa,
Expand All @@ -28,6 +23,10 @@
Organism,
Selection,
)
import scimodom.database.queries as queries
from scimodom.services.annotation import AnnotationService
from scimodom.services.dataset import DataService
import scimodom.utils.utils as utils

logger = logging.getLogger(__name__)

Expand Down
6 changes: 2 additions & 4 deletions server/src/scimodom/database/maintenance/add_project.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,15 @@
and upsert all DB tables.
"""

from argparse import ArgumentParser, SUPPRESS
import json
import logging

import scimodom.utils.utils as utils

from argparse import ArgumentParser, SUPPRESS

from scimodom.config import Config
from scimodom.database.database import make_session
from scimodom.services.project import ProjectService
from scimodom.services.setup import SetupService
import scimodom.utils.utils as utils

logger = logging.getLogger(__name__)

Expand Down
7 changes: 3 additions & 4 deletions server/src/scimodom/database/maintenance/upsert.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,14 @@
This script allows to upsert selected or all DB tables.
"""

import sys
from argparse import ArgumentParser, SUPPRESS
import logging
import sys

import scimodom.utils.utils as utils

from argparse import ArgumentParser, SUPPRESS
from scimodom.config import Config
from scimodom.database.database import make_session
from scimodom.services.setup import SetupService
import scimodom.utils.utils as utils

logger = logging.getLogger(__name__)

Expand Down
5 changes: 2 additions & 3 deletions server/src/scimodom/database/models.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
from scimodom.database.database import Base

from datetime import datetime

from typing import List, Optional

from sqlalchemy import String, Text, DateTime, ForeignKey, UniqueConstraint
from sqlalchemy.orm import Mapped, mapped_column, relationship

from scimodom.database.database import Base


class Modomics(Base):
"""Modified residues"""
Expand Down
5 changes: 2 additions & 3 deletions server/src/scimodom/database/queries.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# template queries

from sqlalchemy import select
from scimodom.database.models import AssemblyVersion, AnnotationVersion

from scimodom.database.models import AssemblyVersion, AnnotationVersion
import scimodom.utils.utils as utils

# -- special queries

Expand All @@ -20,7 +20,6 @@ def get_annotation_version():

def query_column_where(model, column, filters=dict()):
# query one column w/ or w/o filters
import scimodom.utils.utils as utils

try:
query = select(getattr(model, column))
Expand Down
7 changes: 4 additions & 3 deletions server/src/scimodom/frontend.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,18 @@
#
#
from flask import Blueprint

from scimodom.config import Config

frontend = Blueprint("frontend", __name__, static_folder=Config.FRONTEND_PATH)


@frontend.route('/')
@frontend.route("/")
def index():
return frontend.send_static_file('index.html')
return frontend.send_static_file("index.html")


@frontend.route('/<path:filename>')
@frontend.route("/<path:filename>")
def assets(filename):
print(filename)
return frontend.send_static_file(filename)
25 changes: 10 additions & 15 deletions server/src/scimodom/services/annotation.py
Original file line number Diff line number Diff line change
@@ -1,23 +1,29 @@
#! /usr/bin/env python3

import os
import gzip
import logging

import scimodom.database.queries as queries

import os
from pathlib import Path
from posixpath import join as urljoin
from typing import ClassVar
import zlib

import requests # type: ignore
from sqlalchemy import select, insert
from sqlalchemy.orm import Session

from scimodom.config import Config
import scimodom.database.queries as queries
from scimodom.database.models import (
Data,
Dataset,
Annotation,
AnnotationVersion,
GenomicAnnotation,
)
from scimodom.utils.models import records_factory
from scimodom.utils.operations import get_genomic_annotation
import scimodom.utils.specifications as specs

# T = TypeVar('T', bound='Parent')

Expand Down Expand Up @@ -248,15 +254,6 @@ def create_annotation(
:param fmt: Annotation file format
:type fmt: str
"""
import gzip
import zlib
import requests # type: ignore

import scimodom.utils.specifications as specs

from sqlalchemy import insert

from posixpath import join as urljoin

# from scimodom.utils.operations import get_genomic_annotation

Expand Down Expand Up @@ -390,8 +387,6 @@ def annotate_data(self):
See scimodom.utils.operations.get_genomic_annotation
"""
from scimodom.utils.operations import get_genomic_annotation
from scimodom.utils.models import records_factory

query = select(
Data.chrom,
Expand Down
12 changes: 6 additions & 6 deletions server/src/scimodom/services/dataset.py
Original file line number Diff line number Diff line change
@@ -1,16 +1,12 @@
#! /usr/bin/env python3

import logging

import scimodom.utils.utils as utils
import scimodom.utils.specifications as specs
import scimodom.database.queries as queries

from pathlib import Path
from typing import TextIO, ClassVar, Any

from sqlalchemy import select, func
from sqlalchemy.orm import Session
from scimodom.services.importer import EUFImporter

from scimodom.database.models import (
Data,
Dataset,
Expand All @@ -22,6 +18,10 @@
Organism,
Assembly,
)
import scimodom.database.queries as queries
from scimodom.services.importer import EUFImporter
import scimodom.utils.specifications as specs
import scimodom.utils.utils as utils

logger = logging.getLogger(__name__)

Expand Down
17 changes: 8 additions & 9 deletions server/src/scimodom/services/importer.py
Original file line number Diff line number Diff line change
@@ -1,21 +1,20 @@
#! /usr/bin/env python3

import re
import logging
import itertools

import scimodom.utils.utils as utils
import scimodom.database.queries as queries
import scimodom.utils.specifications as specs

import logging
from pathlib import Path
import re
from typing import TextIO, Iterable, ClassVar, Any

from sqlalchemy import insert, select
from sqlalchemy.orm import Session

from scimodom.services.annotation import AnnotationService
from scimodom.database.models import Data, Dataset
from scimodom.database.database import Base
from scimodom.database.models import Data, Dataset
import scimodom.database.queries as queries
from scimodom.services.annotation import AnnotationService
import scimodom.utils.specifications as specs
import scimodom.utils.utils as utils

logger = logging.getLogger(__name__)

Expand Down
Loading

0 comments on commit 5c326e5

Please sign in to comment.