Science Score: 18.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (1.3%) to scientific vocabulary
Last synced: 10 months ago · JSON representation ·

Repository

Basic Info
  • Host: GitHub
  • Owner: azeemmufti
  • Default Branch: master
  • Size: 1.37 MB
Statistics
  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created over 12 years ago · Last pushed over 12 years ago
Metadata Files
Readme Citation

README

code for parsing/converting citations from JSON style objects into various CSL styles and Bibtex, Endnote, RIS, etc using
citeproc-py and Bibutils

Owner

  • Name: Azeem
  • Login: azeemmufti
  • Kind: user
  • Location: Richmond, VA
  • Company: @ApivistaCode

Citation (CitationParser.py)

from __future__ import (absolute_import, division, print_function,
                        unicode_literals)

import subprocess
import os

# We'll use json.loads for parsing the JSON data.
import json

import citeproc

from citeproc.py2compat import *

#Import the citeproc-py classes we'll use below.
from citeproc import CitationStylesStyle, CitationStylesBibliography
from citeproc import Citation, CitationItem
from citeproc import formatter
from citeproc.source.json import CiteProcJSON

__author__ = 'azeem'

CSL_PATH = 'styles'

def to_CSL(project_data, citation_style, formatter_Style):
    """Format an OSF project as a citation.

    :param project_data: JSON-style dictionary of project information
    :param citation_style: File name of citation xml document
    :param formatter: Citeproc formatter (e.g. formatter.plain, formatter.html)
    """
    bib_source = CiteProcJSON([project_data])
    bib_style = CitationStylesStyle(citation_style)

    bibliography = CitationStylesBibliography(bib_style, bib_source, formatter_Style)

    citation1 = Citation([CitationItem(project_data['id'])])
    bibliography.register(citation1)

    return bibliography.bibliography()


def to_final(utilname, csl_input):
    """following conversion from JSON to CSLformat (bibtex in this case), this method converts that to XMLintermediary
    and then to final user specified format"""

    texText = to_CSL(csl_input, os.path.join(CSL_PATH, 'bibtex.csl'), formatter.plain)

    bibtexTerminal = subprocess.Popen(["echo", texText], stdout = subprocess.PIPE)
    xmlTerminal = subprocess.Popen(["bib2xml"], stdin = bibtexTerminal.stdout, stdout = subprocess.PIPE)
    finalForm = subprocess.check_output([utilname], stdin = xmlTerminal.stdout)
    return finalForm



#sample item to be cited
sample = {
"id": "ITEM-5",
"title":"Boundaries of Dissent: Protest and State Power in the Media Age",
"author": [
{
"family": "D'Arcus",
"given": "Bruce",
"static-ordering": False
}
],
"publisher": "Routledge",
"publisher-place": "New York",
"issued": {
"date-parts":[[2006]]
},
"type": "book",
"URL": "website.com"
}

#print (to_CSL(sample,os.path.join(CSL_PATH, 'harvard1.csl'), formatter.rst))
print (to_CSL(sample,os.path.join(CSL_PATH, 'harvard1.csl'), formatter.plain))

print(to_final('xml2bib', sample))

GitHub Events

Total
Last Year