예제 #1
0
파일: classes.py 프로젝트: percyfal/pm
import os
from cement.core import backend, handler, output
from cement.utils import test, shell

LOG = backend.minimal_logger(__name__)

BASEDIR = os.path.join(os.path.dirname(__file__), os.pardir)

from pm.cli import PmMainApp

## Set default configuration
filedir = os.path.abspath(os.curdir)
config_defaults = backend.defaults('config', 'project','log')
config_defaults['project']['root']  = os.path.join(filedir, "data", "projects")
config_defaults['config']['ignore'] = ["slurm*", "tmp*"]
config_defaults['log']['level']  = "INFO"
config_defaults['log']['file']  = os.path.join(filedir, "log", "pm.log")

def safe_makedir(dname):
    """Make directory"""
    if not os.path.exists(dname):
        try:
            os.makedirs(dname)
        except OSError:
            if not os.path.isdir(dname):
                raise
    else:
        print "Directory %s already exists" % dname
    return dname

예제 #2
0
"""Distributed Extension"""
import re
import os
import sys
try:
    import drmaa
except:
    pass
import itertools
import argparse

from cement.core import backend, handler, hook

from scilifelab.pm.core import command

LOG = backend.minimal_logger(__name__)

class DistributedCommandHandler(command.CommandHandler):
    """ 
    This class is an implementation of the :ref:`ICommand
    <scilifelab.pm.core.command>` interface.
    """    

    class Meta:
        """Handler meta-data"""
        
        interface = command.ICommand
        """The interface that this class implements."""

        label = 'distributed'
        """The string identifier of this handler."""
예제 #3
0
import xml.parsers.expat
import hashlib
import time
from uuid import uuid4
import glob
import json
import fnmatch
import numpy as np
import csv
from collections import defaultdict
from itertools import izip

from bs4 import BeautifulSoup

from cement.core import backend
LOG = backend.minimal_logger("bcbio")

from bcbio.broad.metrics import *
from bcbio.pipeline.qcsummary import FastQCParser

class MetricsParser():
    """Basic class for parsing metrics"""
    def __init__(self, log=None):
        self.log = LOG
        if log:
            self.log = log

    def parse_bc_metrics(self, in_handle):
        data = {}
        while 1:
            line = in_handle.readline()
예제 #4
0
파일: __init__.py 프로젝트: vals/scilifelab
import os
import re
import yaml
import glob
import xml.parsers.expat
from uuid import uuid4
import json
import numpy as np
import csv
import collections
import xml.etree.cElementTree as ET
from bs4 import BeautifulSoup
import datetime

from cement.core import backend
LOG = backend.minimal_logger("bcbio")

from bcbio.broad.metrics import PicardMetricsParser
from bcbio.pipeline.qcsummary import FastQCParser


class MetricsParser():
    """Basic class for parsing metrics"""
    def __init__(self, log=None):
        self.log = LOG
        if log:
            self.log = log

    def parse_bc_metrics(self, in_handle):
        data = {}
        while 1:
예제 #5
0
 def __init__(self, **kwargs):
     self.con = None
     self.log = backend.minimal_logger(repr(self))
     self.connect(**kwargs)
예제 #6
0
"""Database module"""
import os
import sys
import couchdb

from cement.core import backend

LOG = backend.minimal_logger("db")

from scilifelab.utils.http import check_url


class ConnectionError(Exception):
    """Exception raised for connection errors.


    :param msg: the error message
    """

    def __init__(self, msg):
        Exception.__init__(self)
        self.msg = msg

    def __str__(self):
        return self.msg

class Database(object):
    """Main database connection object for noSQL databases"""

    def __init__(self, **kwargs):
        self.con = None