List Info

Thread: Re: liblicense/gen_licenses.py




Re: liblicense/gen_licenses.py
user name
2007-07-09 11:21:19
Note that this script makes an incorrect assumption in
determining if
a license has been superseded.  Namely it assumes that the
versions
will be in ascending order in the XML file, which is not
guaranteed.

NRY


On 7/5/07, jakin44users.sourceforge.net <jakin44users.sourceforge.net> wrote:
> Revision: 6139
>           http://svn.sourceforge.net/cctools/?rev=6139&view=r
ev
> Author:   jakin44
> Date:     2007-07-05 22:34:16 -0700 (Thu, 05 Jul 2007)
>
> Log Message:
> -----------
> Script to generate RDF descriptions of all CC
licenses.
>
> Added Paths:
> -----------
>     liblicense/gen_licenses.py
>
> Added: liblicense/gen_licenses.py
>
============================================================
=======
> --- liblicense/gen_licenses.py                         
(rev 0)
> +++ liblicense/gen_licenses.py  2007-07-06 05:34:16 UTC
(rev 6139)
>  -0,0 +1,252 
> +#!/usr/bin/env python
> +# Creative Commons has made the contents of this file
> +# available under a CC-GNU-GPL license:
> +#
> +# http://c
reativecommons.org/licenses/GPL/2.0/
> +#
> +# A copy of the full license can be found as part of
this
> +# distribution in the file COPYING.
> +#
> +# You may use the liblicense software in accordance
with the
> +# terms of that license. You agree that you are
solely
> +# responsible for your use of the liblicense software
and you
> +# represent and warrant to Creative Commons that your
use
> +# of the liblicense software will comply with the
CC-GNU-GPL.
> +#
> +# Copyright 2007, Creative Commons,
www.creativecommons.org.
> +# Copyright 2007, Jason Kivlighn.
> +
> +from rdflib.Graph import Graph
> +from rdflib import Namespace, RDF
> +
> +from urllib2 import *
> +import xml.dom.minidom
> +import xml.dom.ext
> +import sys, os
> +
> +if not os.path.exists("i18n"):
> +       print "ERROR: Checkout https://svn.sourceforge.net/svnroot/cctools/i18n/tru
nk/i18n/ from svn into the current directory before
running this script."
> +       sys.exit(1)
> +
> +try:
> +       os.mkdir("licenses")
> +except:
> +       pass
> +
> +header = """<!--
> +
> +Creative Commons has made the contents of this file
> +available under a CC-GNU-GPL license:
> +
> + http://c
reativecommons.org/licenses/GPL/2.0/
> +
> + A copy of the full license can be found as part of
this
> + distribution in the file COPYING
> +
> +You may use the liblicense software in accordance with
the
> +terms of that license. You agree that you are solely
> +responsible for your use of the liblicense software
and you
> +represent and warrant to Creative Commons that your
use
> +of the liblicense software will comply with the
CC-GNU-GPL.
> +
> +Copyright 2007, Creative Commons,
www.creativecommons.org.
> +
> +-->
> +"""
> +
> +PO_DIR="https://svn.sourceforge.net/svnroot/cctools/i1
8n/trunk/i18n/"
> +LICENSE_FILE="https://svn.sourceforge.net/svnr
oot/cctools/license_xsl/trunk/licenses.xml"
> +
> +NS_DC = "http://purl.or
g/dc/elements/1.1/"
> +NS_DCQ = "http://purl.org/dc/te
rms/"
> +NS_RDF = "htt
p://www.w3.org/1999/02/22-rdf-syntax-ns#"
> +
> +NS_CC = Namespace("http://creativec
ommons.org/ns#")
> +
> +#x-default should be first in the list
> +xDefault = "en"
> +locales = [xDefault,
"af","bg","ca","da",
"de","de_AT","de_CH","en_
CA",
> +      
"en_GB","en_US","eo","es&
quot;,"es_AR","es_CL","es_CO",
"es_MX","es_PE",
> +      
"eu","fi","fr","fr_CA&quo
t;,"fr_CH","fr_LU","gl","
he","hr","hu","it","
it_CH",
> +      
"ja","ko","kr","mk",
"ms","nl","nso","pl"
,"pt","pt_PT","sl","st&qu
ot;,"sv",
> +      
"zh","zh_TW","zu"]
> +
> +conn = urlopen(LICENSE_FILE)
> +license_xml = xml.dom.minidom.parse(conn)
> +
> +licenses =
license_xml.getElementsByTagName('license')
> +print [license.getAttribute('id') for license in
licenses]
> +for license in licenses:
> +       id = license.getAttribute('id')
> +       print id
> +       jurisdictions =
license.getElementsByTagName('jurisdiction')
> +       for jurisdiction in jurisdictions:
> +               jurisdiction_id =
jurisdiction.getAttribute('id')
> +               versions =
jurisdiction.getElementsByTagName('version')
> +               replacedByURI =
versions[len(versions)-1].getAttribute('uri')
> +               for version in versions:
> +                       version_id =
version.getAttribute('id')
> +                       uri =
version.getAttribute('uri')
> +
> +                       store = Graph()
> +
> +                       try:
> +                               store.load('%srdf' %
uri)
> +                       except:
> +                               print uri,
"failed"
> +                               pass
> +                       else:
> +                               doc =
xml.dom.minidom.Document()
> +
> +                               rdf =
doc.createElementNS(NS_RDF, "rdf:RDF")
> +                               doc.appendChild( rdf )
> +
> +                               description =
doc.createElementNS(NS_RDF, "rdfescripti
on")
> +                              
description.setAttributeNS(NS_RDF,"rdf:about",uri)

> +                               rdf.appendChild(
description )
> +
> +                               if version_id !=
"-":
> +                                       hasVersion =
doc.createElementNS(NS_DC, "dc:hasVersion")
> +                                      
hasVersion.appendChild( doc.createTextNode(version_id) )
> +                                      
description.appendChild( hasVersion )
> +
> +                               if len(versions) > 0
and replacedByURI != uri:
> +                                       isReplacedBy =
doc.createElementNS(NS_DC, "dc:isReplacedBy")
> +                                       isReplacedByURI
= doc.createElementNS(NS_DCQ, "dcq:URI")
> +                                      
isReplacedByURIValue =
doc.createElementNS(NS_RDF,"rdf:value")
> +                                      
isReplacedByURIValue.appendChild(
doc.createTextNode(replacedByURI) )
> +                                      
isReplacedByURI.appendChild( isReplacedByURIValue )
> +                                      
isReplacedBy.appendChild( isReplacedByURI )
> +                                      
description.appendChild( isReplacedBy )
> +
> +                               type =
doc.createElementNS(NS_DC, "dc:type")
> +                               type.appendChild(
doc.createTextNode("License") )
> +                              
description.appendChild( type )
> +
> +                               identifier =
doc.createElementNS(NS_DC, "dc:identifier")
> +                               identifier.appendChild(
doc.createTextNode(uri) )
> +                              
description.appendChild( identifier )
> +
> +                               if id in
["GPL","LGPL"]:
> +                                       creator_str =
"Free Software Foundation"
> +                               elif id ==
"publicdomain":
> +                                       creator_str =
None
> +                               else:
> +                                       creator_str =
"Creative Commons"
> +
> +                               if creator_str:
> +                                       creator =
doc.createElementNS(NS_DC, "dc:creator")
> +                                      
creator.appendChild( doc.createTextNode(creator_str) )
> +                                      
description.appendChild( creator )
> +
> +                               publisher =
doc.createElementNS(NS_DC, "dc:publisher")
> +                               publisher.appendChild(
doc.createTextNode("Creative Commons") )
> +                              
description.appendChild( publisher )
> +
> +                               if jurisdiction_id !=
"-":
> +                                       coverage =
doc.createElementNS(NS_DC, "dc:coverage")
> +                                       coverageCode =
doc.createElementNS(NS_DCQ, "dcq:ISO3166")
> +                                      
coverageCodeValue =
doc.createElementNS(NS_RDF,"rdf:value")
> +                                      
coverageCodeValue.appendChild(
doc.createTextNode(jurisdiction_id) )
> +                                      
coverageCode.appendChild( coverageCodeValue )
> +                                      
coverage.appendChild( coverageCode )
> +                                      
description.appendChild( coverage )
> +
> +                                       basedOnURI =
uri.rsplit("/",2)[0]+"/"
> +                                       isBasedOn =
doc.createElementNS(NS_DC, "dc:isBasedOn")
> +                                       isBasedOnURI =
doc.createElementNS(NS_DCQ, "dcq:URI")
> +                                      
isBasedOnURIValue =
doc.createElementNS(NS_RDF,"rdf:value")
> +                                      
isBasedOnURIValue.appendChild(
doc.createTextNode(basedOnURI) )
> +                                      
isBasedOnURI.appendChild( isBasedOnURIValue )
> +                                      
isBasedOn.appendChild( isBasedOnURI )
> +                                      
description.appendChild( isBasedOn )
> +
> +                               rdfType =
doc.createElementNS(NS_RDF, "rdf:type")
> +                              
rdfType.setAttributeNS(NS_RDF,"rdf:resource","
;http://cr
eativecommons.org/ns#License")
> +                              
description.appendChild( rdfType )
> +
> +                               for license in
store.subjects(RDF.type, NS_CC["License"]):
> +                                       for requires in
store.objects(license, NS_CC["requires"]):
> +                                               element
= doc.createElementNS(NS_CC, "requires")
> +                                              
element.setAttributeNS(NS_RDF,"rdf:resource",str(r
equires))
> +                                              
description.appendChild( element )
> +                                       for permits in
store.objects(license, NS_CC["permits"]):
> +                                               element
= doc.createElementNS(NS_CC, "permits")
> +                                              
element.setAttributeNS(NS_RDF,"rdf:resource",str(p
ermits))
> +                                              
description.appendChild( element )
> +                                       for prohibits
in store.objects(license, NS_CC["prohibits"]):
> +                                               element
= doc.createElementNS(NS_CC, "prohibits")
> +                                              
element.setAttributeNS(NS_RDF,"rdf:resource",str(p
rohibits))
> +                                              
description.appendChild( element )
> +
> +                               #try:
> +
> +                               translation_map = {}
> +
> +                               title =
doc.createElementNS(NS_DC, "dc:title")
> +                               title_alt =
doc.createElementNS(NS_RDF, "rdf:Alt")
> +                               title.appendChild(
title_alt )
> +                              
description.appendChild(title)
> +                               if id ==
"devnations":
> +                                      
translation_map['msgid "util.Developing_Nations"']
= title_alt
> +                               else:
> +                                      
translation_map['msgid "licenses.pretty_%s"' % id]
= title_alt
> +
> +                               """
> +                               dcDescription =
doc.createElementNS(NS_DC, "dc:description")
> +                               dcDescription_alt =
doc.createElementNS(NS_RDF, "rdf:Alt")
> +                              
dcDescription.appendChild( dcDescription_alt )
> +                              
description.appendChild(dcDescription)
> +                               translation_map['msgid
"char.%s_description"' % id] = dcDescription_alt
> +                               """
> +
> +                               for locale in locales:
> +                                       try:
> +                                               #conn =
urlopen(PO_DIR+"icommons-%s.po" % locale)
> +                                               conn =
open("i18n/icommons-%s.po" %
locale,"r")
> +                                               lines =
conn.readlines()
> +                                               i = 0
> +                                               while i
< len(lines):
> +                                                      
line = lines[i].decode("utf8").strip()
> +                                                      
element = translation_map.get(line)
> +                                                      
if element:
> +                                                      
        i += 1
> +                                                      
        msgstr = lines[i].strip().lstrip('msgstr
"').rstrip('"')
> +                                                      
        li = doc.createElementNS(NS_RDF,"rdf:li")
> +                                                      
        if locale == xDefault:
> +                                                      
               
li.setAttributeNS(xml.dom.XML_NAMESPACE,"xml:lang"
,"x-default")
> +                                                      
        else:
> +                                                      
                if locale.find("_") == -1:
> +                                                      
                        locale = locale + "_" +
locale.upper()
> +                                                      
               
li.setAttributeNS(xml.dom.XML_NAMESPACE,"xml:lang"
,locale)
> +
> +                                                      
        if creator_str == "Creative Commons":
> +                                                      
                msgstr = "Creative Commons -
"+msgstr
> +                                                      
        li.appendChild( doc.createTextNode(msgstr) )
> +
> +                                                      
        element.appendChild( li )
> +                                                      
i += 1
> +                                       except:
> +                                               print
"getting po file, %s, failed" % locale
> +                                              
continue
> +
> +                               output =
"licenses/%s.rdf" % uri.lstrip("http://").replace("/"
;,"_")
> +                               output_file =
open(output,"w")
> +                              
#doc.writexml(output_file,'','t','n')
> +                              
xml.dom.ext.PrettyPrint(doc,output_file)
> +                               output_file.close()
> +
> +                               # Now tack on the
header comment
> +                               f_out =
open(output+".new","w")
> +                               f_in =
open(output,"r")
> +
> +                              
f_out.write(f_in.readline())
> +                               f_out.write(header)
> +                              
f_out.write(f_in.read())
> +
> +                               f_out.close()
> +                               f_in.close()
> +
> +                              
os.rename(output+".new",output)
> +
> +print "Licenses output to licenses/"
>
>
> Property changes on: liblicense/gen_licenses.py
>
____________________________________________________________
_______
> Name: svn:executable
>    + *
>
>
> This was sent by the SourceForge.net collaborative
development platform, the world's largest Open Source
development site.
>
>
------------------------------------------------------------
-------------
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2
express and take
> control of your XML. No limits. Just data. Click to get
it now.
> http://sourcefor
ge.net/powerbar/db2/
> _______________________________________________
> Cctools-cvs mailing list
> Cctools-cvslists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/cctools-cvs

>
_______________________________________________
cc-devel mailing list
cc-devellists.ibiblio.org
ht
tp://lists.ibiblio.org/mailman/listinfo/cc-devel

Re: liblicense/gen_licenses.py
country flaguser name
United States
2007-07-09 16:14:17
> Note that this script makes an incorrect assumption in
determining if
> a license has been superseded.  Namely it assumes that
the versions
> will be in ascending order in the XML file, which is
not guaranteed.
I'll fix that.

I want to point out, though, that I don't picture this
script as a
long-term solution in generating licenses.  In my opinion,
it hackishly
pulls together files from all over, including translations
from the po
files in svn.

I like the idea of migrating towards using these RDF license
files in
the other direction:  taking one source with all the license
information
and extracting the relevant information and using it to
generate the
translations, http://cr
eativecommons.org/licenses/.../rdf, and so on.

My 2 cents.

Cheers,
Jason

>
> NRY
>
>
> On 7/5/07, jakin44users.sourceforge.net
> <jakin44users.sourceforge.net> wrote:
>> Revision: 6139
>>           http://svn.sourceforge.net/cctools/?rev=6139&view=r
ev
>> Author:   jakin44
>> Date:     2007-07-05 22:34:16 -0700 (Thu, 05 Jul
2007)
>>
>> Log Message:
>> -----------
>> Script to generate RDF descriptions of all CC
licenses.
>>
>> Added Paths:
>> -----------
>>     liblicense/gen_licenses.py
>>
>> Added: liblicense/gen_licenses.py
>>
============================================================
=======
>> --- liblicense/gen_licenses.py                     
    (rev 0)
>> +++ liblicense/gen_licenses.py  2007-07-06 05:34:16
UTC (rev 6139)
>>  -0,0 +1,252 
>> +#!/usr/bin/env python
>> +# Creative Commons has made the contents of this
file
>> +# available under a CC-GNU-GPL license:
>> +#
>> +# http://c
reativecommons.org/licenses/GPL/2.0/
>> +#
>> +# A copy of the full license can be found as part
of this
>> +# distribution in the file COPYING.
>> +#
>> +# You may use the liblicense software in
accordance with the
>> +# terms of that license. You agree that you are
solely
>> +# responsible for your use of the liblicense
software and you
>> +# represent and warrant to Creative Commons that
your use
>> +# of the liblicense software will comply with the
CC-GNU-GPL.
>> +#
>> +# Copyright 2007, Creative Commons,
www.creativecommons.org.
>> +# Copyright 2007, Jason Kivlighn.
>> +
>> +from rdflib.Graph import Graph
>> +from rdflib import Namespace, RDF
>> +
>> +from urllib2 import *
>> +import xml.dom.minidom
>> +import xml.dom.ext
>> +import sys, os
>> +
>> +if not os.path.exists("i18n"):
>> +       print "ERROR: Checkout
>> https://svn.sourceforge.net/svnroot/cctools/i18n/tru
nk/i18n/ from svn
>> into the current directory before running this
script."
>> +       sys.exit(1)
>> +
>> +try:
>> +       os.mkdir("licenses")
>> +except:
>> +       pass
>> +
>> +header = """<!--
>> +
>> +Creative Commons has made the contents of this
file
>> +available under a CC-GNU-GPL license:
>> +
>> + http://c
reativecommons.org/licenses/GPL/2.0/
>> +
>> + A copy of the full license can be found as part
of this
>> + distribution in the file COPYING
>> +
>> +You may use the liblicense software in accordance
with the
>> +terms of that license. You agree that you are
solely
>> +responsible for your use of the liblicense
software and you
>> +represent and warrant to Creative Commons that
your use
>> +of the liblicense software will comply with the
CC-GNU-GPL.
>> +
>> +Copyright 2007, Creative Commons,
www.creativecommons.org.
>> +
>> +-->
>> +"""
>> +
>> +PO_DIR="https://svn.sourceforge.net/svnroot/cctools/i1
8n/trunk/i18n/"
>> +LICENSE_FILE="https://svn.sourceforge.net/svnr
oot/cctools/license_xsl/trunk/licenses.xml"
>>
>> +
>> +NS_DC = "http://purl.or
g/dc/elements/1.1/"
>> +NS_DCQ = "http://purl.org/dc/te
rms/"
>> +NS_RDF = "htt
p://www.w3.org/1999/02/22-rdf-syntax-ns#"
>> +
>> +NS_CC = Namespace("http://creativec
ommons.org/ns#")
>> +
>> +#x-default should be first in the list
>> +xDefault = "en"
>> +locales = [xDefault,
"af","bg","ca","da",
"de","de_AT","de_CH","en_
CA",
>> +      
>>
"en_GB","en_US","eo","es&
quot;,"es_AR","es_CL","es_CO",
"es_MX","es_PE",
>> +      
>>
"eu","fi","fr","fr_CA&quo
t;,"fr_CH","fr_LU","gl","
he","hr","hu","it","
it_CH",
>> +      
>>
"ja","ko","kr","mk",
"ms","nl","nso","pl"
,"pt","pt_PT","sl","st&qu
ot;,"sv",
>> +      
"zh","zh_TW","zu"]
>> +
>> +conn = urlopen(LICENSE_FILE)
>> +license_xml = xml.dom.minidom.parse(conn)
>> +
>> +licenses =
license_xml.getElementsByTagName('license')
>> +print [license.getAttribute('id') for license in
licenses]
>> +for license in licenses:
>> +       id = license.getAttribute('id')
>> +       print id
>> +       jurisdictions =
license.getElementsByTagName('jurisdiction')
>> +       for jurisdiction in jurisdictions:
>> +               jurisdiction_id =
jurisdiction.getAttribute('id')
>> +               versions =
jurisdiction.getElementsByTagName('version')
>> +               replacedByURI =
>> versions[len(versions)-1].getAttribute('uri')
>> +               for version in versions:
>> +                       version_id =
version.getAttribute('id')
>> +                       uri =
version.getAttribute('uri')
>> +
>> +                       store = Graph()
>> +
>> +                       try:
>> +                               store.load('%srdf'
% uri)
>> +                       except:
>> +                               print uri,
"failed"
>> +                               pass
>> +                       else:
>> +                               doc =
xml.dom.minidom.Document()
>> +
>> +                               rdf =
doc.createElementNS(NS_RDF,
>> "rdf:RDF")
>> +                               doc.appendChild(
rdf )
>> +
>> +                               description =
>> doc.createElementNS(NS_RDF, "rdfescripti
on")
>> +                              
>>
description.setAttributeNS(NS_RDF,"rdf:about",uri)

>> +                               rdf.appendChild(
description )
>> +
>> +                               if version_id !=
"-":
>> +                                       hasVersion
=
>> doc.createElementNS(NS_DC,
"dc:hasVersion")
>> +                                      
hasVersion.appendChild(
>> doc.createTextNode(version_id) )
>> +                                      
description.appendChild(
>> hasVersion )
>> +
>> +                               if len(versions)
> 0 and
>> replacedByURI != uri:
>> +                                      
isReplacedBy =
>> doc.createElementNS(NS_DC,
"dc:isReplacedBy")
>> +                                      
isReplacedByURI =
>> doc.createElementNS(NS_DCQ, "dcq:URI")
>> +                                      
isReplacedByURIValue =
>> doc.createElementNS(NS_RDF,"rdf:value")
>> +                                      
>> isReplacedByURIValue.appendChild(
doc.createTextNode(replacedByURI) )
>> +                                      
isReplacedByURI.appendChild(
>> isReplacedByURIValue )
>> +                                      
isReplacedBy.appendChild(
>> isReplacedByURI )
>> +                                      
description.appendChild(
>> isReplacedBy )
>> +
>> +                               type =
doc.createElementNS(NS_DC,
>> "dc:type")
>> +                               type.appendChild(
>> doc.createTextNode("License") )
>> +                              
description.appendChild( type )
>> +
>> +                               identifier =
>> doc.createElementNS(NS_DC,
"dc:identifier")
>> +                              
identifier.appendChild(
>> doc.createTextNode(uri) )
>> +                              
description.appendChild( identifier )
>> +
>> +                               if id in
["GPL","LGPL"]:
>> +                                       creator_str
= "Free Software
>> Foundation"
>> +                               elif id ==
"publicdomain":
>> +                                       creator_str
= None
>> +                               else:
>> +                                       creator_str
= "Creative Commons"
>> +
>> +                               if creator_str:
>> +                                       creator =
>> doc.createElementNS(NS_DC, "dc:creator")
>> +                                      
creator.appendChild(
>> doc.createTextNode(creator_str) )
>> +                                      
description.appendChild(
>> creator )
>> +
>> +                               publisher =
>> doc.createElementNS(NS_DC,
"dc:publisher")
>> +                              
publisher.appendChild(
>> doc.createTextNode("Creative Commons") )
>> +                              
description.appendChild( publisher )
>> +
>> +                               if jurisdiction_id
!= "-":
>> +                                       coverage =
>> doc.createElementNS(NS_DC,
"dc:coverage")
>> +                                      
coverageCode =
>> doc.createElementNS(NS_DCQ,
"dcq:ISO3166")
>> +                                      
coverageCodeValue =
>> doc.createElementNS(NS_RDF,"rdf:value")
>> +                                      
>> coverageCodeValue.appendChild(
doc.createTextNode(jurisdiction_id) )
>> +                                      
coverageCode.appendChild(
>> coverageCodeValue )
>> +                                      
coverage.appendChild(
>> coverageCode )
>> +                                      
description.appendChild(
>> coverage )
>> +
>> +                                       basedOnURI
=
>> uri.rsplit("/",2)[0]+"/"
>> +                                       isBasedOn
=
>> doc.createElementNS(NS_DC,
"dc:isBasedOn")
>> +                                      
isBasedOnURI =
>> doc.createElementNS(NS_DCQ, "dcq:URI")
>> +                                      
isBasedOnURIValue =
>> doc.createElementNS(NS_RDF,"rdf:value")
>> +                                      
>> isBasedOnURIValue.appendChild(
doc.createTextNode(basedOnURI) )
>> +                                      
isBasedOnURI.appendChild(
>> isBasedOnURIValue )
>> +                                      
isBasedOn.appendChild(
>> isBasedOnURI )
>> +                                      
description.appendChild(
>> isBasedOn )
>> +
>> +                               rdfType =
doc.createElementNS(NS_RDF,
>> "rdf:type")
>> +                              
>>
rdfType.setAttributeNS(NS_RDF,"rdf:resource","
;http://cr
eativecommons.org/ns#License")
>>
>> +                              
description.appendChild( rdfType )
>> +
>> +                               for license in
>> store.subjects(RDF.type,
NS_CC["License"]):
>> +                                       for
requires in
>> store.objects(license,
NS_CC["requires"]):
>> +                                              
element =
>> doc.createElementNS(NS_CC, "requires")
>> +                                              
>>
element.setAttributeNS(NS_RDF,"rdf:resource",str(r
equires))
>> +                                              
>> description.appendChild( element )
>> +                                       for permits
in
>> store.objects(license,
NS_CC["permits"]):
>> +                                              
element =
>> doc.createElementNS(NS_CC, "permits")
>> +                                              
>>
element.setAttributeNS(NS_RDF,"rdf:resource",str(p
ermits))
>> +                                              
>> description.appendChild( element )
>> +                                       for
prohibits in
>> store.objects(license,
NS_CC["prohibits"]):
>> +                                              
element =
>> doc.createElementNS(NS_CC, "prohibits")
>> +                                              
>>
element.setAttributeNS(NS_RDF,"rdf:resource",str(p
rohibits))
>> +                                              
>> description.appendChild( element )
>> +
>> +                               #try:
>> +
>> +                               translation_map =
{}
>> +
>> +                               title =
doc.createElementNS(NS_DC,
>> "dc:title")
>> +                               title_alt =
>> doc.createElementNS(NS_RDF, "rdf:Alt")
>> +                               title.appendChild(
title_alt )
>> +                              
description.appendChild(title)
>> +                               if id ==
"devnations":
>> +                                      
translation_map['msgid
>> "util.Developing_Nations"'] = title_alt
>> +                               else:
>> +                                      
translation_map['msgid
>> "licenses.pretty_%s"' % id] = title_alt
>> +
>> +                               """
>> +                               dcDescription =
>> doc.createElementNS(NS_DC,
"dc:description")
>> +                               dcDescription_alt
=
>> doc.createElementNS(NS_RDF, "rdf:Alt")
>> +                              
dcDescription.appendChild(
>> dcDescription_alt )
>> +                              
description.appendChild(dcDescription)
>> +                              
translation_map['msgid
>> "char.%s_description"' % id] =
dcDescription_alt
>> +                               """
>> +
>> +                               for locale in
locales:
>> +                                       try:
>> +                                              
#conn =
>> urlopen(PO_DIR+"icommons-%s.po" %
locale)
>> +                                              
conn =
>> open("i18n/icommons-%s.po" %
locale,"r")
>> +                                              
lines = conn.readlines()
>> +                                               i =
0
>> +                                              
while i < len(lines):
>> +                                                  
    line =
>> lines[i].decode("utf8").strip()
>> +                                                  
    element =
>> translation_map.get(line)
>> +                                                  
    if element:
>> +                                                  
            i += 1
>> +                                                  
           
>> msgstr = lines[i].strip().lstrip('msgstr
"').rstrip('"')
>> +                                                  
            li =
>> doc.createElementNS(NS_RDF,"rdf:li")
>> +                                                  
            if
>> locale == xDefault:
>> +                                                  
                   
>>
li.setAttributeNS(xml.dom.XML_NAMESPACE,"xml:lang"
,"x-default")
>> +                                                  
            else:
>> +                                                  
                   
>> if locale.find("_") == -1:
>> +                                                  
                           
>> locale = locale + "_" + locale.upper()
>> +                                                  
                   
>>
li.setAttributeNS(xml.dom.XML_NAMESPACE,"xml:lang"
,locale)
>> +
>> +                                                  
            if
>> creator_str == "Creative Commons":
>> +                                                  
                   
>> msgstr = "Creative Commons - "+msgstr
>> +                                                  
           
>> li.appendChild( doc.createTextNode(msgstr) )
>> +
>> +                                                  
           
>> element.appendChild( li )
>> +                                                  
    i += 1
>> +                                       except:
>> +                                              
print "getting po
>> file, %s, failed" % locale
>> +                                              
continue
>> +
>> +                               output =
"licenses/%s.rdf" %
>> uri.lstrip("http://").replace("/"
;,"_")
>> +                               output_file =
open(output,"w")
>> +                              
#doc.writexml(output_file,'','t','n')
>> +                              
xml.dom.ext.PrettyPrint(doc,output_file)
>> +                              
output_file.close()
>> +
>> +                               # Now tack on the
header comment
>> +                               f_out =
open(output+".new","w")
>> +                               f_in =
open(output,"r")
>> +
>> +                              
f_out.write(f_in.readline())
>> +                              
f_out.write(header)
>> +                              
f_out.write(f_in.read())
>> +
>> +                               f_out.close()
>> +                               f_in.close()
>> +
>> +                              
os.rename(output+".new",output)
>> +
>> +print "Licenses output to licenses/"
>>
>>
>> Property changes on: liblicense/gen_licenses.py
>>
____________________________________________________________
_______
>> Name: svn:executable
>>    + *
>>
>>
>> This was sent by the SourceForge.net collaborative
development
>> platform, the world's largest Open Source
development site.
>>
>>
------------------------------------------------------------
-------------
>>
>> This SF.net email is sponsored by DB2 Express
>> Download DB2 Express C - the FREE version of DB2
express and take
>> control of your XML. No limits. Just data. Click to
get it now.
>> http://sourcefor
ge.net/powerbar/db2/
>> _______________________________________________
>> Cctools-cvs mailing list
>> Cctools-cvslists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/cctools-cvs

>>
>

_______________________________________________
cc-devel mailing list
cc-devellists.ibiblio.org
ht
tp://lists.ibiblio.org/mailman/listinfo/cc-devel

[1-2]

about | contact  Other archives ( Real Estate discussion Medical topics )