Skip to content

Instantly share code, notes, and snippets.

View gustavofonseca's full-sized avatar

Gustavo Fonseca gustavofonseca

  • São Paulo, Brazil
View GitHub Profile
@gustavofonseca
gustavofonseca / issue_rede_journal.py
Created March 14, 2014 13:19
script utilizado na análise de preenchimento dos campos dos registros de fascículo da rede SciELO.
#!/usr/bin/env python2.7
#coding: utf-8
import tablib
def get_dataset(filepath):
skipped_rows = 0
valid_rows = 0
ds = tablib.Dataset(headers=['title', 'pubdate', 'volume',
@gustavofonseca
gustavofonseca / models_exp.py
Created March 22, 2014 22:55
Abordagem evitando o relacionamento ternário.
"""
>>> rsp = models.Journal.objects.create(title=u'Revista de saúde pública')
(0.002) INSERT INTO "journalmanager_journal" ("title") VALUES (Revista de saúde pública); args=[u'Revista de sa\xfade p\xfablica']
>>>
>>> brasil = models.Collection.objects.create(name=u'Brasil')
(0.001) INSERT INTO "journalmanager_collection" ("name") VALUES (Brasil); args=[u'Brasil']
>>>
>>> rsp.join(brasil)
(0.001) INSERT INTO "journalmanager_membership" ("journal_id", "collection_id", "publication_status", "publication_status_since") VALUES (1, 1, c, 2014-03-22 22:47:59.174742); args=[1, 1, 'c', u'2014-03-22 22:47:59.174742']
(0.001) INSERT INTO "journalmanager_journaltimeline" ("journal_id", "collection_id", "publication_status", "publication_status_since") VALUES (1, 1, c, 2014-03-22 22:47:59.174742); args=[1, 1, 'c', u'2014-03-22 22:47:59.174742']
def get_xpath(element):
"""Get the XPath string to element.
This code is a port of a C# snippet published at
http://stackoverflow.com/a/9221904
"""
path = '/' + element.tag
parent = element.getparent()
if parent is not None:
...
<front>
...
<article-meta>
...
<funding-group>
<award-group>
<funding-source rid="01">CNPq</funding-source>
<award-id rid="02">16362 2010/2011</award-id>
</award-group>
#coding: utf-8
import os
from os.path import join, getsize
import re
IMG_PATTERN = re.compile(r'^\w{4}-\w{4}-')
def lista_tifs(top):
for dirpath, dirnames, filenames in os.walk(top):
@gustavofonseca
gustavofonseca / sobre_refs
Created May 19, 2015 11:10
Anotações sobre a questão das referências bibliográficas caóticas que lidamos no SciELO
Para a má-formação das referências bibliográficas, o céu é o limite. Além de
não seguirem as normas à risca, os autores ainda muitas vezes produzem
referências que carecem dos elementos fundamentais, como por exemplo a URL
em uma referência à página de internet.
Na SciELO, documentos individuais não podem ser impedidos de ingressar por
problemas de má-formação ou falta de metadados essenciais. Suspensões ou
outras medidas punitivas se dão no nível do periódico, por meio de processos
formais, e não individualmente no nível do documento.
@gustavofonseca
gustavofonseca / idéias affs.rst
Last active August 29, 2015 14:24
Idéias sobre affs

Se entendi corretamente, o problema é o seguinte: Um determinado contribuidor pode, no momento da elaboração do documento, estar afiliado a uma ou mais instituições, e todas devem ser devidamente identificadas com um determinado nível de detalhe. Além disso, o crédito (estou chamando de crédito a frase formatada em que aparece a afiliação no PDF ou versão impressa) deve ser preservado e vinculado com o contribuidor.

#1 - Usar aff-alternatives (logo eu percebi que é uma má idéia.. pois alternativas devem ser equivalentes, e não é o caso):

<contrib-group>
  <contrib contrib-type="author">
    <name>
      <surname>Soares</surname>
      <given-names>Ana Cristina Fontenele</given-names>
    </name>
@gustavofonseca
gustavofonseca / API Autenticação BVS
Created November 26, 2010 17:47
Exemplo de uso da API de autenticação da Plataforma de Serviços da BVS
$result = Authentication::loginUser($_REQUEST["userID"],$_REQUEST["userPass"]);
if (($result["status"] !== false) and ($result !== false)){
$_SESSION["userTK"] = $result["userTK"]; // Token de autenticação
$_SESSION["userFirstName"] = $result["userFirstName"]; // Primeiro nome
$_SESSION["userLastName"] = $result["userLastName"]; // Ultimo nome
$_SESSION["userMail"] = $result["userMail"]; // Email
$response["status"] = true;
}
from isisdm.mapper import Document
from isisdm.mapper import TextField, NumberField, DateTimeField
class Livro(Document):
titulo = TextField(required=True, repeatable=True)
data = DateTimeField()
total_paginas = NumberField()
@gustavofonseca
gustavofonseca / gist:990270
Created May 25, 2011 03:33
Chain of responsibility example (GoF design pattern)
# encoding: utf-8
"""
>>> Dispatcher.handle_for_me('the animal who says "auau"')
handled by a Dog instance!
>>> Dispatcher.handle_for_me('the animal who says "miau"')
handled by a Cat instance!
>>> Dispatcher.handle_for_me('the animal who says "hakuna matata"')