- 
                Notifications
    You must be signed in to change notification settings 
- Fork 57
support custom import extension #246
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the tests -- really stellar work there 👍
Just a few little things
We should also add an argument to pysassc so this can be done from the cli.  Probably action='append'
        
          
                sass.py
              
                Outdated
          
        
      | s, v, _ = _sass.compile_filename( | ||
| input_filename, output_style, source_comments, include_paths, | ||
| precision, None, custom_functions, importers, None, | ||
| precision, None, custom_functions, importers, None, [], | 
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
compile_dirname should probably grow this parameter as well
        
          
                sass.py
              
                Outdated
          
        
      |  | ||
| _custom_exts = kwargs.pop('custom_import_extensions', []) or [] | ||
| if isinstance(_custom_exts, (text_type, bytes)): | ||
| _custom_exts = [_custom_exts] | 
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
hmm, not sure how I feel about a parameter which ends with s that can take a str, let's instead raise a TypeError and require an iterable of some sort
Also let's just require that they are text or ascii compatible:
custom_import_extensions = [
    ext.encode('UTF-8')
    for ext in kwargs.pop('custom_import_extensions', ())
]        
          
                sasstests.py
              
                Outdated
          
        
      |  | ||
|  | ||
| def test_import_no_css(tmpdir): | ||
| tmpdir.join('other.css').write('body {colour: green}') | 
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
colour, I like it heh.
        
          
                sasstests.py
              
                Outdated
          
        
      | b'.css', | ||
| [b'.css'], | ||
| ['.foobar', '.css'], | ||
| ['.foobar', '.css', b'anything'], | 
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this case is unreasonable 🤷♂️
| Done, except I'm now concerned this is just a sticking plaster over the problem. It currently causes the warning So this change will be broken again in libsass 3.6.0. I guess the long-term solution is for libsass-python to provide a css loader. Perhaps we should change the api now to a  | 
| 
 From sass/libsass#2636 (comment) it seems that the warning will disappear in 3.6.0 so I think this is fine? @xzyfer can you confirm that the this approach will continue to work in 3.6.0? | 
| @samuelcolvin now that the dust has settled, is this good to go? if so I'll merge and make a release | 
| Yes, I think good to go. | 
| This has been released as part of 0.14.4 -- thanks again for the fix! | 
| Great, I'll update my tool grablib which uses libsass extensively now. | 
| just a heads up @samuelcolvin -- looks like upstream has backtracked on the  | 
| Great news. Very good news they agreed to revert this. Do we need to do anything here? | 
| Nope! I'll handle it next time we pull in upstream :) note that in the next version there will be a deprecation warning and some time after that the options will be removed but no immediate action (and I'll ping you again when that's happening 🎉) | 
| To summaries the plan moving forward. It's become clear that people rely on being able to resolve  Specifically the behaviour we want to deprecate is the using Sass language features in  | 
| @xzyfer thanks for the great communication on this 👍 | 
fix #245, ref sass/libsass@e690924