Re: Path to read a data file shipped within an egg?

2007-11-05 Thread Alberto Valverde

Chris Shenton wrote:
 I've got an app that needs to read and parse a data file (a RADIUS
 dictionary, not a Python dictionary but a flat file).  I want to
 include this file in my egg so I don't have to depend on the OS having
 RADIUS installed.
 
 In the application's top-level setup.py, I add my data/ subdir to the
 package_data list:
 
 package_data={'bianca': ['i18n/*/LC_MESSAGES/*.mo', 'data/*']},
 
 and see that the files in data/ get added to my egg.  Good so far. 
 
 What path do I use to reference that file for reading?  Again, I am
 trying to avoid hard-coded absolute filesystem paths.  But trying paths
 like:
 
   freeradius_dictionary
   /data/freeradius_dictionary
   /bianca/data/freeradius_dictionary
   /bianca/freeradius_dictionary
 
 didn't work for me: file not found.
 
 What's the pattern for paths to files that live inside eggs, rather than
 on the larger filesystem? Is there some PATH I need to specify to the
 app or Pylons? Something else?


from pkg_resources import resource_filename
path = resource_filename('bianca', 'data/freeradius_dictionary')

If data would have been a python package, which I suppose it's not, then:

path = resource_filename('bianca.data', 'freeradius_dictionary')

HTH,
Alberto

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
pylons-discuss group.
To post to this group, send email to pylons-discuss@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~--~~~~--~~--~--~---



Path to read a data file shipped within an egg?

2007-11-04 Thread Chris Shenton

I've got an app that needs to read and parse a data file (a RADIUS
dictionary, not a Python dictionary but a flat file).  I want to
include this file in my egg so I don't have to depend on the OS having
RADIUS installed.

In the application's top-level setup.py, I add my data/ subdir to the
package_data list:

package_data={'bianca': ['i18n/*/LC_MESSAGES/*.mo', 'data/*']},

and see that the files in data/ get added to my egg.  Good so far. 

What path do I use to reference that file for reading?  Again, I am
trying to avoid hard-coded absolute filesystem paths.  But trying paths
like:

  freeradius_dictionary
  /data/freeradius_dictionary
  /bianca/data/freeradius_dictionary
  /bianca/freeradius_dictionary

didn't work for me: file not found.

What's the pattern for paths to files that live inside eggs, rather than
on the larger filesystem? Is there some PATH I need to specify to the
app or Pylons? Something else?

Thanks.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
pylons-discuss group.
To post to this group, send email to pylons-discuss@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~--~~~~--~~--~--~---