Skip to content
Snippets Groups Projects
Commit 8c8dbe35 authored by Daniel Lyons's avatar Daniel Lyons
Browse files

Odds and ends, especially a fix to declarative_base to use ABC

parent 1d442193
No related branches found
No related tags found
No related merge requests found
all: ${HOME}/miniconda3 ${HOME}/miniconda3/envs/data metadata build
all: ${HOME}/miniconda3/envs/data metadata build
${HOME}/miniconda3:
@echo Please install miniconda to ${HOME}/miniconda3
@exit 1
${HOME}/miniconda3/envs/data: environment.yml
${HOME}/miniconda3/envs/data: ${HOME}/miniconda3 environment.yml
conda env update
touch $@
......@@ -18,4 +18,15 @@ build:
.PHONY: test
test:
buildout parts=test name=all
\ No newline at end of file
buildout parts=test name=all
.PHONY: conda-active
conda-active: ${HOME}/miniconda3/envs/data
@[ "${CONDA_PREFIX}" = "${HOME}/miniconda3/envs/data" ] || conda activate data
dev: conda-active
for dir in shared/{schema,workspaces} services/{workflow,capability}; do \
pushd $$dir; \
python setup.py develop; \
popd; \
done
......@@ -100,5 +100,8 @@ setup(
'paste.app_factory': [
'main = capability.server:main'
],
'console_scripts': [
'launch_capability = capability.capability_launcher:main'
]
},
)
__version__ = '0.01'
""" Version information for this package, don't put anything else here. """
___version___ = '4.0.0a1.dev1'
......@@ -7,7 +7,7 @@ import argparse
import requests
from workspaces.schema import Capability
from ._version import __version__ as version
from ._version import ___version___ as version
def request_capability():
......
......@@ -3,10 +3,19 @@ from pyramid.config import Configurator
from pyramid.renderers import JSONP
from pyramid.view import view_config, view_defaults
from pyramid_beaker import session_factory_from_settings
from workspaces.services import WorkflowInfo, WorkflowService, get_session_factory, get_engine, CapabilityInfo, \
from workspaces.services import get_session_factory, get_engine, CapabilityInfo, \
CapabilityService
@view_defaults(route_name='capability/request', renderer='json')
class CapabilityRestService:
@view_config(request_method='POST', route_name='submit')
def submit(self):
# 1. Parse the request
# 2. Submit the request to the service
# 3. Return something we can listen for
pass
# ---------------------------------------------------------
#
# F R A M E W O R K S E T U P
......
......@@ -13,8 +13,10 @@ CapabilityName = str
class CapabilityIF(ABC):
pass
def create_request(
self, parameters: "ParameterIF", future_products: FutureProductIF, versions: str
):
pass
class CapabilityRequestIF(ABC):
pass
......
"""
Model classes used by the Workspaces system.
"""
import abc
import enum
import json
from pathlib import Path
from typing import Dict, List
from typing import Dict, List, Tuple
import sqlalchemy as sa
from pycapo import CapoConfig
......@@ -133,7 +133,7 @@ class CapabilityEvent:
raise NotImplementedError
Base = declarative_base()
Base = declarative_base(metaclass=abc.ABCMeta)
class Capability(Base, CapabilityIF):
......@@ -154,7 +154,7 @@ class Capability(Base, CapabilityIF):
return self
@staticmethod
def parse_capability_file(filename: str) -> tuple[str, int, CapabilitySequenceIF]:
def parse_capability_file(filename: str) -> Tuple[str, int, CapabilitySequenceIF]:
with open(filename, 'r') as f:
name, max_jobs = f.readline().split(' ')
steps = []
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment