Glad PyXB has been useful to you.
I've created trac tickets for these issues, and will review them when next I
work on PyXB (might be a couple weeks out). I don't use Windows for
development, so have to be conservative in what patches I apply to support
it, but on initial review those seem straightforward. Thanks for providing
the problem reports and fixes; if you have additional issues, please feel
free to create trac tickets on the SourceForge project.
Peter
On Mon, Dec 27, 2010 at 10:51 AM, barry gallagher
<barry.gallag...@noaa.gov>wrote:
> Hi, I am starting a schema driven project and am operating on MS
> Windows. I had started with generateDS but switched over to pyxb once I
> got to facet/restriction handling. Most things have gone smoothly but I
> had a couple of snags.
>
> For the generation of wrapper files I saw the threads saying use "file:"
> for pyxbgen which worked for me until I had sub schemas that were also
> files. The second file's name was getting "file:///" prepended and
> wasn't being found when I tried something like "pyxbgen -u
> file:local.xsd -m local_out". I decided to check for the uri resulting
> in a local file and didn't let the archive directory get modified in
> that case.
>
> My second issue was in using archived files for schemas using
> namespaces. I would get an ImportError and it turns out that the
> pickled file was written in mode "a+" and on windows that ends the lines
> with "\r\n". When pickle would read the data the modules would have an
> extra "\r" at the end of strings and lead to an error like this:
>
> File
> "c:\PydroTrunk\pydro\lib\site-packages\pyxb\namespace\archive.py", line
> 357, in __createUnpickler
> self.__generationUID = unpickler.load()
> ImportError: No module named utility
>
> I changed line 608 of utils/utility to use append binary and things are
> happy.
> fp = file(file_name, 'ab+')
>
>
>
> For the first issue I changed utils/utility.py at line 550 from:
>
> try:
> if 0 <= uri.find(':'):
> xmls = urllib2.urlopen(uri).read()
> else:
> xmls = file(uri).read()
> archive_directory = None
> to:
>
> try:
> try:
> f = urllib2.urlopen(uri)
> except:
> try:
> import urllib
> f = urllib.urlopen(uri) #urllib and urllib2 handle
> slightly differently so let both try.
> except:
> f = file(uri)
> xmls = f.read()
> if isinstance(f, file) or isinstance(f.fp, file): #catch any
> regular files or urllib files
> archive_directory = None
>
> Thanks for all the work you've put in so far,
> bg
>
>
>
> ------------------------------------------------------------------------------
> Learn how Oracle Real Application Clusters (RAC) One Node allows customers
> to consolidate database storage, standardize their database environment,
> and,
> should the need arise, upgrade to a full multi-node Oracle RAC database
> without downtime or disruption
> http://p.sf.net/sfu/oracle-sfdevnl
> _______________________________________________
> pyxb-users mailing list
> pyxb-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/pyxb-users
>
------------------------------------------------------------------------------
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and,
should the need arise, upgrade to a full multi-node Oracle RAC database
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl
_______________________________________________
pyxb-users mailing list
pyxb-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/pyxb-users