include statement

J

joakim.hove

Hello,

is it possible in python to include another python source file into the
current namespace, i.e.completely analogous to the #include statement
in C.

Regards Joakim
 
R

Ravi Teja

is it possible in python to include another python source file into the
current namespace, i.e.completely analogous to the #include statement
in C.

By using a pre-processor, like C does.
http://www.freenet.org.nz/python/pyp/

If you are new to Python, keep in mind that this is for special cases
only. Since Python has a module system, there isn't a need for #include
as in C.
 
G

Gary Herron

Hello,

is it possible in python to include another python source file into the
current namespace, i.e.completely analogous to the #include statement
in C.

Regards Joakim
No (thank heavens)! We left #include and other such primitive
functionality back with the dinosaurs (C and its relatives) when we
moved into the world of tje modern sophisticated programming language
Python. Tell us why you are contemplating such a thing, and someone
here will help you implement it the "Pythonic" way.

Gary Herron
 
J

joakim.hove

Thanks to all who took time to answer!

is it possible in python to include another python source file into the
current namespace, i.e.completely analogous to the #include statement
in C.
[...]

Tell us why you are contemplating such a thing, and someone
here will help you implement it the "Pythonic" way.

My application has a configuration file where lots of variables are
set. (The configuration file is python source, so there is no
home-brewed parsing involved.) The configuration file is starting to
get quite large and unwieldy, so for this reason I would like to split
it in several files.

I know I could do:
from configA import *
from configB import *

But I felt that the import statemant was 'more' than I wanted. Maybe I
am just pedantic.

Regards

Joakim
 
P

Peter Otten

Thanks to all who took time to answer!

is it possible in python to include another python source file into the
current namespace, i.e.completely analogous to the #include statement
in C.
[...]

Tell us why you are contemplating such a thing, and someone
here will help you implement it the "Pythonic" way.

My application has a configuration file where lots of variables are
set. (The configuration file is python source, so there is no
home-brewed parsing involved.) The configuration file is starting to
get quite large and unwieldy, so for this reason I would like to split
it in several files.

I know I could do:
from configA import *
from configB import *

But I felt that the import statemant was 'more' than I wanted. Maybe I
am just pedantic.

Maybe you like execfile() which would allow you to collect the configuration
files without the need for them to be reachable through the import
mechanism.

pattern = os.path.expanduser("~/.herron/config*.py")

for fn in glob.glob(pattern):
execfile(fn)

# objects in the config*.py files now
# share one namespace.

Peter
 
B

Bruno Desthuilliers

Thanks to all who took time to answer!

is it possible in python to include another python source file into the
current namespace, i.e.completely analogous to the #include statement
in C.
[...]

Tell us why you are contemplating such a thing, and someone
here will help you implement it the "Pythonic" way.

My application has a configuration file where lots of variables are
set. (The configuration file is python source, so there is no
home-brewed parsing involved.) The configuration file is starting to
get quite large and unwieldy, so for this reason I would like to split
it in several files.

I know I could do:
from configA import *
from configB import *

But I felt that the import statemant was 'more' than I wanted. Maybe I
am just pedantic.

Maybe... "import" is the very appropriate statement for what you want
here IMVHO. I'd just put the config<X>.py files into a 'config'
directory, add an __init__.py, and put the 'from configX import *'
there. Then in the app code, a simple 'import config', which allow acces
to config vars via 'config.varname' (clean namespaces really improve
maintainability).

My 2 cents
 
L

Larry Bates

Thanks to all who took time to answer!

is it possible in python to include another python source file into the
current namespace, i.e.completely analogous to the #include statement
in C.
[...]

Tell us why you are contemplating such a thing, and someone
here will help you implement it the "Pythonic" way.

My application has a configuration file where lots of variables are
set. (The configuration file is python source, so there is no
home-brewed parsing involved.) The configuration file is starting to
get quite large and unwieldy, so for this reason I would like to split
it in several files.

I know I could do:
from configA import *
from configB import *

But I felt that the import statemant was 'more' than I wanted. Maybe I
am just pedantic.

Regards

Joakim
I might also suggest that you consider using ConfigParser module to store
your "variables". If you are worried about performance, I can tell you that
I use it to feed thousands of lines of configuration info into one of my
applications (this app has 5 of these files) and ConfigParser handles them
so quickly that performance is NOT a problem. The format of the file is
easily understandable by nearly every user which means I don't have to
worry with someone not understanding Python's syntax. If someone gets
something wrong in a file that gets included, it is harder to take a sane
default or handle the error than with ConfigParser. Just a suggestion that
I hope helps.

-Larry Bates

or
 
G

Gabriel Genellina

At said:
My application has a configuration file where lots of variables are
set. (The configuration file is python source, so there is no
home-brewed parsing involved.) The configuration file is starting to
get quite large and unwieldy, so for this reason I would like to split
it in several files.

I know I could do:
from configA import *
from configB import *

But I felt that the import statemant was 'more' than I wanted. Maybe I
am just pedantic.

You can limit the range of "from...import *" declaring a __all__
variable in the imported module; this way you import exactly what is
needed (and the rest is kept as "private")



Gabriel Genellina
Softlab SRL





__________________________________________________
Preguntá. Respondé. Descubrí.
Todo lo que querías saber, y lo que ni imaginabas,
está en Yahoo! Respuestas (Beta).
¡Probalo ya!
http://www.yahoo.com.ar/respuestas
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,754
Messages
2,569,521
Members
44,995
Latest member
PinupduzSap

Latest Threads

Top