citationtools
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
- Repositories: 4
- Profile: https://github.com/azeemmufti
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))