I just had a small issue with the following code:

<style>
@import url("http://example.com/css")
</style>

The smartypants will replace two double quotation marks with curly ones and that should not be happening. After digging a while, it is because smartypants doesn’t know to skip <style/>.

import smartypants
print smartypants.tags_to_skip_regex.pattern
<(/)?(pre|code|kbd|script|math)[^>]*>

The resolution I use is to add the tag:

RE = smartypants.tags_to_skip_regex
pattern = RE.pattern.replace('|code', '|code|tt')
pattern = pattern.replace('|script', '|script|style')
RE = re.compile(pattern, RE.flags)
smartypants.tags_to_skip_regex = RE

Your ReST code will be good to go, I also add <tt/>, that’s what Docutils use for inline code instead of <code/>.