I'm unsure about relative import, I haven't touched ipynb in a while.
I would suggest raising an issue on the repository.
-- 
M

On Fri, Apr 14, 2017 at 1:40 PM, Andy Davidson
<[email protected]> wrote:
> Hi Matthias
>
> I am running into a path problem. I have started my juypter notebook server
> with the current working directory = ~/myWork. I am working on a notebooks
> at the following path ~/myWork/a/b/notebook1.ipynb Is there a way I can
> import definitions from a notebook in another directory under ~/mywork
>
> thanks
>
> Andy
>
> p.s. I saw the doc about 'relative imports' how ever I could not get it to
> work
>
>
> On Friday, April 14, 2017 at 1:17:12 PM UTC-7, Matthias Bussonnier wrote:
>>
>> Hi Andy,
>>
>> Yes, feel free to report a bug there, we can try to follow-up on the
>> repository and track it appropriately.
>>
>> Thanks !
>> --
>> M
>>
>> On Fri, Apr 14, 2017 at 12:29 PM, Andy Davidson
>> <[email protected]> wrote:
>> > Hi Matthias
>> >
>> > ipynb is what I was looking for. I noticed two small problems. (I am not
>> > sure where/how to report them)
>> >
>> > 1) You can not import functions that have doc strings in them.
>> >
>> > Here is the error msg
>> >
>> >  File "<unknown>", line 13
>> >     """uses Gauss's method for summing integers
>> > http://wmueller.com/precalculus/advanced/hint4_3_6.html""";
>> >     ^
>> > IndentationError: unexpected indent
>> >
>> >
>> > 2) I needed to use import 'as'. I think the
>> > https://github.com/ipython/ipynb
>> > readme.md needs to be update.
>> >
>> >
>> > Here is an example
>> >
>> >
>> > import ipynb.fs.defs.myMathFunctions as mmf
>> >
>> > mmf.quickSum(5)
>> >
>> >
>> >
>> >
>> >
>> > many thanks
>> >
>> >
>> > On Thursday, April 13, 2017 at 7:17:45 PM UTC-7, Matthias Bussonnier
>> > wrote:
>> >>
>> >> Hi Andy,
>> >>
>> >> I would suggest to look at https://github.com/ipython/ipynb , which is
>> >> supposed to do what you want by walking the AST.
>> >> We need to polish it and advertise it more, feedback (and
>> >> contributions) would be welcome.
>> >> --
>> >> Matthias
>> >>
>> >> On Thu, Apr 13, 2017 at 5:28 PM, Andy Davidson
>> >> <[email protected]> wrote:
>> >> > Hi
>> >> >
>> >> > I have a couple of python functions defined in one notebook that I
>> >> > would
>> >> > like to reuse in another. I found the following direction.
>> >> >
>> >> >
>> >> >
>> >> > http://jupyter-notebook.readthedocs.io/en/latest/examples/Notebook/Importing%20Notebooks.html
>> >> >
>> >> >
>> >> >
>> >> > https://github.com/jupyter/notebook/blob/master/docs/source/examples/Notebook/Importing%20Notebooks.ipynb
>> >> >
>> >> > My challenge is I have a lot of cells that define straight python
>> >> > code.
>> >> > These cells often load large data files and are very slow. Ideally I
>> >> > would
>> >> > like to to only import functions. It looks like the heavy lifting is
>> >> > done by
>> >> > NotebookLoader() bellow. Maybe there is a clever way to only execute
>> >> > function definitions? Is there a way to get the abstract syntax tree
>> >> > for
>> >> > the
>> >> > code in a cell and pick out the function definitions?
>> >> >
>> >> > As a newbie my hack would be to require functions be defined in their
>> >> > own
>> >> > cell. Next before execute check the cell code for lines beginning
>> >> > with
>> >> > ‘def'
>> >> >
>> >> > class NotebookLoader(object):
>> >> >     """Module Loader for Jupyter Notebooks"""
>> >> >     def __init__(self, path=None):
>> >> >         self.shell = InteractiveShell.instance()
>> >> >         self.path = path
>> >> >
>> >> >     def load_module(self, fullname):
>> >> >         """import a notebook as a module"""
>> >> >         path = find_notebook(fullname, self.path)
>> >> >
>> >> >         print ("importing Jupyter notebook from %s" % path)
>> >> >
>> >> >         # load the notebook object
>> >> >         with io.open(path, 'r', encoding='utf-8') as f:
>> >> >             nb = read(f, 4)
>> >> >
>> >> >
>> >> >         # create the module and add it to sys.modules
>> >> >         # if name in sys.modules:
>> >> >         #    return sys.modules[name]
>> >> >         mod = types.ModuleType(fullname)
>> >> >         mod.__file__ = path
>> >> >         mod.__loader__ = self
>> >> >         mod.__dict__['get_ipython'] = get_ipython
>> >> >         sys.modules[fullname] = mod
>> >> >
>> >> >         # extra work to ensure that magics that would affect the
>> >> > user_ns
>> >> >         # actually affect the notebook module's ns
>> >> >         save_user_ns = self.shell.user_ns
>> >> >         self.shell.user_ns = mod.__dict__
>> >> >
>> >> >         try:
>> >> >           for cell in nb.cells:
>> >> >             if cell.cell_type == 'code':
>> >> >                 # transform the input to executable Python
>> >> >                 code =
>> >> > self.shell.input_transformer_manager.transform_cell(cell.source)
>> >> >                 # run the code in themodule
>> >> >                 exec(code, mod.__dict__)
>> >> >         finally:
>> >> >             self.shell.user_ns = save_user_ns
>> >> >         return mod
>> >> >
>> >> >
>> >> >
>> >> > P.s. I found Importing%20Notebooks.html hard to use. It might be
>> >> > easier
>> >> > of
>> >> > the code as split out and this notebook and put in the standard
>> >> > distribution
>> >> > of jupyter.  “how to import notebooks.ipynb” then becomes 2 lines
>> >> >
>> >> > Import importNotebookHelper
>> >> > Import myNotebook
>> >> >
>> >> > Kind regards
>> >> >
>> >> > Andy
>> >> >
>> >> > --
>> >> > You received this message because you are subscribed to the Google
>> >> > Groups
>> >> > "Project Jupyter" group.
>> >> > To unsubscribe from this group and stop receiving emails from it,
>> >> > send
>> >> > an
>> >> > email to [email protected].
>> >> > To post to this group, send email to [email protected].
>> >> > To view this discussion on the web visit
>> >> >
>> >> >
>> >> > https://groups.google.com/d/msgid/jupyter/D51565AA.571A2%25Andy%40SantaCruzIntegration.com.
>> >> > For more options, visit https://groups.google.com/d/optout.
>> >
>> > --
>> > You received this message because you are subscribed to the Google
>> > Groups
>> > "Project Jupyter" group.
>> > To unsubscribe from this group and stop receiving emails from it, send
>> > an
>> > email to [email protected].
>> > To post to this group, send email to [email protected].
>> > To view this discussion on the web visit
>> >
>> > https://groups.google.com/d/msgid/jupyter/5e2fc660-31b1-47bf-ada5-49e20b12c896%40googlegroups.com.
>> >
>> > For more options, visit https://groups.google.com/d/optout.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Project Jupyter" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/jupyter/045b102d-fb0d-4303-9216-0da9672a5a85%40googlegroups.com.
>
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"Project Jupyter" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jupyter/CANJQusUZvG6kcgtyePk-%2B6fRmsicYci4Ouc0Z_gha%2BPwuEQKsA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to