Commit 327c7bfe authored by Tiago Peixoto's avatar Tiago Peixoto
Browse files

add entry: marvel_universe

parent c66f0080
#! /usr/bin/env python
# -*- coding: utf-8 -*-
#
# Copyright (C) 2020 Tiago de Paula Peixoto <tiago@skewed.de>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from .. import *
title = "Marvel Universe social network"
description = "The Marvel Universe collaboration network, where two Marvel characters are considered linked if they jointly appear in the same Marvel comic book"
tags = ['Social', 'Fictional', 'Unweighted']
url = 'http://bioinfo.uib.es/~joemiro/marvel/porgat.txt'
citation = [('R. Alberich, J. Miro-Julia, and F. Rossello, "Marvel Universe looks almost like a real social network." arxiv:cond-mat/0202174 (2002).', 'http://arxiv.org/abs/cond-mat/0202174')]
icon_hash = '56a85c8e26855e083a2f78d2'
ustream_license = None
upstream_prefix = 'http://bioinfo.uib.es/~joemiro/marvel'
files = [('porgat.txt', None, 'pajek')]
def fetch_upstream(force=False):
return fetch_upstream_files(__name__.split(".")[-1], upstream_prefix, files,
force)
@cache_network()
@coerce_props()
@annotate()
def parse(alts=None):
global files
name = __name__.split(".")[-1]
for fnames, alt, fmt in files:
if alts is not None and alt not in alts:
continue
if isinstance(fnames, str):
fnames = [fnames]
with ExitStack() as stack:
fs = [stack.enter_context(open_upstream_file(name, fn, "r",
encoding="ISO-8859-1")) for fn in fnames]
# convert to utf8
with TemporaryFile(mode="w+b") as tmp:
wp = io.TextIOWrapper(tmp)
shutil.copyfileobj(fs[0], wp)
tmp.seek(0)
g = parse_graph([tmp], fmt, directed=False)
del g.vp["type"]
del g.vp["id"]
del g.vp["_graphml_vertex_id"]
del g.ep["_graphml_edge_id"]
yield alt, g
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment