ctn-archive / nengo_theano

ABANDONED; see https://github.com/nengo/nengo instead
MIT License
3 stars 3 forks source link

rename python import directory #33

Closed jaberg closed 11 years ago

jaberg commented 11 years ago

Currently nengo_theano has two python dirs called "nengo" and "nef" which will either be non-standard (nef) or clash with the ref-impl (nengo). So maybe the import directory name should be... nengo_theano?

jaberg commented 11 years ago

Update: apparently the nef folder was empty except for one test. I moved the test into the nengo/test directory. So now the question is just what to do with the "nengo" import dir, which clashes with the ref impl.

tbekolay commented 11 years ago

I though the idea was that each backend would just add to the nengo namespace?

jaberg commented 11 years ago

Isn't that what the scikits tried to do, and it turned out to be so hard that they abandoned it?

On Wed, May 1, 2013 at 10:38 AM, Trevor Bekolay notifications@github.comwrote:

I though the idea was that each backend would just add to the nengo namespace?

— Reply to this email directly or view it on GitHubhttps://github.com/ctn-waterloo/nengo_theano/issues/33#issuecomment-17284494 .

jaberg commented 11 years ago

It's just not an pattern that the setuptools etc. facilitate.

On Wed, May 1, 2013 at 10:41 AM, James Bergstra james.bergstra@gmail.comwrote:

Isn't that what the scikits tried to do, and it turned out to be so hard that they abandoned it?

On Wed, May 1, 2013 at 10:38 AM, Trevor Bekolay notifications@github.comwrote:

I though the idea was that each backend would just add to the nengo namespace?

— Reply to this email directly or view it on GitHubhttps://github.com/ctn-waterloo/nengo_theano/issues/33#issuecomment-17284494 .

tbekolay commented 11 years ago

Okay. I thought the idea was to have something like

import nengo
model = nengo.model('My Model', backend='theano')

rather than

import nengo_theano as nengo
model = nengo.model('My Model')

Has that changed?

jaberg commented 11 years ago

Right, that should still work. I was talking about the fact that you can't have ref-impl and nengo_theano both installing the "nengo" root folder in the Python path.

On Wed, May 1, 2013 at 11:01 AM, Trevor Bekolay notifications@github.comwrote:

Okay. I thought the idea was to have something like

import nengomodel = nengo.model('My Model', backend='theano')

rather than

import nengo_theano as nengomodel = nengo.model('My Model')

Has that changed?

— Reply to this email directly or view it on GitHubhttps://github.com/ctn-waterloo/nengo_theano/issues/33#issuecomment-17285636 .

jaberg commented 11 years ago

In other words, nengo.model('My Model', backend='theano') might need to import something. So (a) it needs to know what to import, and (b) the thing it imports has to be called something other than "nengo"

On Wed, May 1, 2013 at 11:02 AM, James Bergstra james.bergstra@gmail.comwrote:

Right, that should still work. I was talking about the fact that you can't have ref-impl and nengo_theano both installing the "nengo" root folder in the Python path.

On Wed, May 1, 2013 at 11:01 AM, Trevor Bekolay notifications@github.comwrote:

Okay. I thought the idea was to have something like

import nengomodel = nengo.model('My Model', backend='theano')

rather than

import nengo_theano as nengomodel = nengo.model('My Model')

Has that changed?

— Reply to this email directly or view it on GitHubhttps://github.com/ctn-waterloo/nengo_theano/issues/33#issuecomment-17285636 .

tbekolay commented 11 years ago

Ah, okay. So it would be in the nengo_theano namespace, but the reference implementation (which everyone has to install regardless?) would try to import that to populate the backends list?

jaberg commented 11 years ago

Right, that's what I had in mind.

On Wed, May 1, 2013 at 11:04 AM, Trevor Bekolay notifications@github.comwrote:

Ah, okay. So it would be in the nengo_theano namespace, but the reference implementation (which everyone has to install regardless?) would try to import that to populate the backends list?

— Reply to this email directly or view it on GitHubhttps://github.com/ctn-waterloo/nengo_theano/issues/33#issuecomment-17285791 .

jaberg commented 11 years ago

The common pattern is that nengo ref-impl is hard-coded with a list of known backend repos that it would try to import, or there is a config file somewhere that identifies backends, and the ref-impl uses that file to interpret backend names. I'm thinking of it like a plugin architecture.

On Wed, May 1, 2013 at 11:12 AM, James Bergstra james.bergstra@gmail.comwrote:

Right, that's what I had in mind.

On Wed, May 1, 2013 at 11:04 AM, Trevor Bekolay notifications@github.comwrote:

Ah, okay. So it would be in the nengo_theano namespace, but the reference implementation (which everyone has to install regardless?) would try to import that to populate the backends list?

— Reply to this email directly or view it on GitHubhttps://github.com/ctn-waterloo/nengo_theano/issues/33#issuecomment-17285791 .

tbekolay commented 11 years ago

Cool, sounds good.

studywolf commented 11 years ago

Is this closeable?

tbekolay commented 11 years ago

No, the nengo folder at the root should be renamed to nengo_theano and the setup.py changed so that this repository installs to the nengo_theano, so that nengo and nengo_theano can coexist in site-packages.