Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Lint checking: support more built-in magics #24

Closed
ceball opened this issue Jun 14, 2019 · 0 comments · Fixed by #19
Closed

Lint checking: support more built-in magics #24

ceball opened this issue Jun 14, 2019 · 0 comments · Fixed by #19

Comments

@ceball
Copy link
Member

ceball commented Jun 14, 2019

Although nbsmoke will handle certain magics that execute python in the current process (e.g. %time x will be flake checked as x), and certain magics will be silently ignored (e.g. %matplotlib), if it encounters a magic it doesn't know about, it skips it but prints a warning. However, there are many built-in magics that don't interact with the current python process, so should just be silently ignored. (And if there are any important/valuable ones which do things like set a variable in the current python process, we could consider supporting them.)

ceball added a commit that referenced this issue Sep 14, 2019
Adds some basic missing features, and cleans up some internals.

Note: some ipython magic handling has changed (should be an improvement/more consistent behavior).

New features:

  * support for flake messages to ignore (by regex) - fixes #22
  
  * support for magics blacklist (i.e. magics that if present cause a flake) - fixes #21

  * added support for script & capture cell magics (mainly as a demo) - fixes #24

  * increased the number of builtin magics that will be silently ignored (as they don't interact with the python process), e.g. bookmark, edit, who, etc - fixes #24

  * lint failures can be set to be warnings only (potentially useful for systems that report warnings)

Internal changes:

  * Separated out parts into modules:
  
      * the original/basic functionality (checking notebooks run without errors)
  
      * "verifying" (copied from datashader, which was copied from bokeh?)
      
      * lint/flake checking (using pyflakes)
  
      * magics handling for flakes
  
  * Improve lint/magics debugging by storing various intermediate files.
  
  * Simplify lint checking of magics, making behavior more consistent.
  
  * Replaced custom/hacky magics parsing with stuff from ipython itself (fixes #8)

  * MAGICS_TO_IGNORE and SIMPLE_MAGICS: separated cell and line magics (internal change to support more magics) - fixes #23 

  * Improved unit test coverage (think all code is now covered except "verify").
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant