def map_build_status_comment(stageClass, pull_uri, comment):
    if 'url' in comment:
        subject = URIRef(comment['url'])
        return mapMaybeObjectStatements([
            (pull_uri, feature.stage, Maybe.ret(subject)),
            (subject, rdf.type, Maybe.ret(stageClass)),
            (subject, rdf.type, Maybe.ret(feature.FeatureStage)),
            (subject, schema.dateCreated, get_nested(Maybe, comment, 'created_at').bind(maybeDateTimeLiteral)),
        ])
    else:
        return []
def extract_pull_stagements(subject, pull):
    return mapMaybeObjectStatements([ 
        (subject, rdf.type, Maybe.ret(feature.PullRequest)),
        (subject, rdfs.label, get_nested(Maybe, pull, "title").bind(maybeLiteral)),
        (subject, github.review_comments, get_nested(Maybe, pull, "_links", "review_comments", "href").bind(maybeURIRef)),
        (subject, schema.dateCreated, get_nested(Maybe, pull, "created_at").bind(maybeDateTimeLiteral)),
        (subject, github.merge_commit_sha, get_nested(Maybe, pull, "merge_commit_sha").bind(maybeLiteral)),
    ])
def field(pb, key):
    assert isinstance(pb, Message), "{key!r} is expected to be an object but got type {type!r}".format(
        key=key,
        type=type(pb)
    )
    return Maybe.catch(lambda: getattr(pb, key))
def maybe_getnested_attr(obj, *attrs):
    m = Maybe.ret(obj)
    for attr in attrs:
        m = m.bind(p(maybe_getattr, attr))
    return m
def maybe_getattr(attr, obj):
    return Maybe.catch(lambda: getattr(obj, attr))
Example #6
0
def field(pb, key):
    assert isinstance(
        pb, Message
    ), "{key!r} is expected to be an object but got type {type!r}".format(
        key=key, type=type(pb))
    return Maybe.catch(lambda: getattr(pb, key))
Example #7
0
def maybe_getnested_attr(obj, *attrs):
    m = Maybe.ret(obj)
    for attr in attrs:
        m = m.bind(p(maybe_getattr, attr))
    return m
Example #8
0
def maybe_getattr(attr, obj):
    return Maybe.catch(lambda: getattr(obj, attr))
def maybeDateTimeLiteral(val):
    return Maybe.ret(Literal(val, datatype=XSD.dateTime))
def maybeURIRef(val):
    return Maybe.ret(URIRef(val))
def maybeLiteral(val):
    return Maybe.ret(Literal(val))