[SciPy-dev] RE: [Scipy-cvs] world/scipy/sparse setup_sparse.py,1.1,1.2

eric jones eric at enthought.com
Wed Oct 2 21:17:27 CDT 2002


I would like this to happen also.  There is one issue that I think needs
to be solved to handle this.  Some packages (weave for instances) has a
--without-dependencies option.  Unless this is specified, the weave
distribution includes scipy_distutils, scipy_test, and maybe something
else.  This could, of course, be folded into the setup_weave.py file,
but it begs a larger question.

I've been struggling lately with how we should structure things moving
forward now that weave, scipy, and chaco all exist, run independently,
and rely on scipy_base, scipy_distutils, and scipy_test.  Right now,
each of the packages we provide on the web include all the dependencies.
This leads to weave installations clobbering the scipy_distutils
installation provided by a scipy package and visa-versa.

There are multiple ways to handle this.  The easiest is to actually
package scipy_base, scipy_distutils, and scipy_test into a separate
package and list it as a dependency that people must install first.  I
hate requiring people to install multiple packages to get a tool
working, but things are shaking out so that this sort of thing makes
sense.

Another approach, which is possible now that Pearu and Travis added all
the version information, is to make augment scipy_distutils with the
capabilities of checking the version of dependent packages and only
installing them if they don't exist or the version number of the
currently installed package is older.  This doesn't sound hard, but I
also don't want to wander down the path of re-implementing RPM or
anything like that.  This sort of project sometimes mushrooms out of
control.  Still, I like the solution better, because it allows us to
continue distributing source tarballs with everything in them so that
users only need to get a single file to try out Chaco (assuming they
Python... and Numeric... version 22.0... and wxPython... version
2.3.3.1...).  

The platform that I want to keep simplest unfortunately won't benefit
from any of this.  The windows click-button-install that distutils
creates don't have the ability to check any of this version stuff and do
conditional installs.  For these guys, clobbering old installations or
requiring a two teered installation process are the only (short term)
solutions.

What are other people's opinions on the subject?

Eric

> 
> Update of /home/cvsroot/world/scipy/sparse
> In directory shaft:/tmp/cvs-serv7795/sparse
> 
> Modified Files:
> 	setup_sparse.py
> Log Message:
> Carried out major unification of xxx/setup_xxx.py files. Discussion:
some
> modules contain setup.py files that repeat the functionality of the
> corresponding setup_xxx.py files. Are there any objections if setup.py
and
> setup_xxx.py will be merged into setup_xxx.py and setup.py files will
be
> removed from CVS?
> 
> 
> Index: setup_sparse.py
> ===================================================================
> RCS file: /home/cvsroot/world/scipy/sparse/setup_sparse.py,v
> retrieving revision 1.1
> retrieving revision 1.2
> diff -C2 -d -r1.1 -r1.2
> *** setup_sparse.py	14 Aug 2002 16:30:04 -0000	1.1
> --- setup_sparse.py	3 Oct 2002 00:19:55 -0000	1.2
> ***************
> *** 9,13 ****
> 
>   def configuration(parent_package=''):
> !     config = default_config_dict('sparse',parent_package)
>       local_path = get_path(__name__)
> 
> --- 9,14 ----
> 
>   def configuration(parent_package=''):
> !     package = 'sparse'
> !     config = default_config_dict(package,parent_package)
>       local_path = get_path(__name__)
> 
> ***************
> *** 32,36 ****
>       # Extension
>       sources = ['_zsuperlumodule.c']
> !     ext_args = {'name':dot_join(parent_package,'sparse._zsuperlu'),
>                   'sources':[os.path.join(local_path,x) for x in
sources],
>                   'libraries': ['superlu','myblas']
> --- 33,37 ----
>       # Extension
>       sources = ['_zsuperlumodule.c']
> !     ext_args = {'name':dot_join(parent_package,package,'_zsuperlu'),
>                   'sources':[os.path.join(local_path,x) for x in
sources],
>                   'libraries': ['superlu','myblas']
> ***************
> *** 41,45 ****
> 
>       sources = ['_dsuperlumodule.c']
> !     ext_args = {'name':dot_join(parent_package,'sparse._dsuperlu'),
>                   'sources':[os.path.join(local_path,x) for x in
sources],
>                   'libraries': ['superlu','myblas']
> --- 42,46 ----
> 
>       sources = ['_dsuperlumodule.c']
> !     ext_args = {'name':dot_join(parent_package,package,'_dsuperlu'),
>                   'sources':[os.path.join(local_path,x) for x in
sources],
>                   'libraries': ['superlu','myblas']
> ***************
> *** 50,54 ****
> 
>       sources = ['_csuperlumodule.c']
> !     ext_args = {'name':dot_join(parent_package,'sparse._csuperlu'),
>                   'sources':[os.path.join(local_path,x) for x in
sources],
>                   'libraries': ['superlu','myblas']
> --- 51,55 ----
> 
>       sources = ['_csuperlumodule.c']
> !     ext_args = {'name':dot_join(parent_package,package,'_csuperlu'),
>                   'sources':[os.path.join(local_path,x) for x in
sources],
>                   'libraries': ['superlu','myblas']
> ***************
> *** 59,63 ****
> 
>       sources = ['_ssuperlumodule.c']
> !     ext_args = {'name':dot_join(parent_package,'sparse._ssuperlu'),
>                   'sources':[os.path.join(local_path,x) for x in
sources],
>                   'libraries': ['superlu','myblas']
> --- 60,64 ----
> 
>       sources = ['_ssuperlumodule.c']
> !     ext_args = {'name':dot_join(parent_package,package,'_ssuperlu'),
>                   'sources':[os.path.join(local_path,x) for x in
sources],
>                   'libraries': ['superlu','myblas']
> ***************
> *** 67,71 ****
>       config['ext_modules'].append(ext)
> 
> !     ext_args = {'name':dot_join(parent_package,'sparse._sparsekit'),
>
'sources':[os.path.join(local_path,'_sparsekit.pyf')],
>                   #'f2py_options':['--no-wrap-functions'],
> --- 68,72 ----
>       config['ext_modules'].append(ext)
> 
> !     ext_args =
{'name':dot_join(parent_package,package,'_sparsekit'),
>
'sources':[os.path.join(local_path,'_sparsekit.pyf')],
>                   #'f2py_options':['--no-wrap-functions'],
> 
> 
> _______________________________________________
> Scipy-cvs mailing list
> Scipy-cvs at scipy.org
> http://scipy.net/mailman/listinfo/scipy-cvs




More information about the Scipy-dev mailing list