servo/python
bors-servo afc60bee28 Auto merge of #14190 - Manishearth:cssom, r=SimonSapin
Immutable CSSOM

This PR is intended to add basic support for all CSSOM interfaces, with the ability to index `document.styleSheets` and css rule lists, and serializing individual css rules. Handling individual interface methods for CSSRule subclasses can probably be done with easy/medium bugs.

Mutation safety isn't dealt with here; if the css rule list is mutated the CSSOM will be in an inconsistent state. I intend to deal with this via zero sized tokens, see https://groups.google.com/forum/#!topic/mozilla.dev.servo/AnxJoVmtMXQ .  I'll handle that when I start making the CSSOM mutable. (Getting the immutable bit landed first opens this up for easy bugs)

This doesn't really change style aside from adding an extra arc in the CSS rule list as discussed in the linked thread. So far this same design can be used by stylo as well when the time comes.

f? @SimonSapin @emilio

cc @upsuper

part of #11420
Todo:

 - [x] Stubs for rest of the CSSRule subclasses
 - [x] <s>ToCSS impls for CSSRules.</s> May make into easy bugs and stub out in this PR https://github.com/servo/servo/issues/14195
 - [x] Cache CSSStyleSheet on the relevant node

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/14190)
<!-- Reviewable:end -->
2016-11-16 15:05:59 -06:00
..
servo Auto merge of #14039 - metajack:windows-wpt, r=jgraham 2016-11-16 13:41:27 -06:00
tidy Support basic immutable CSSOM 2016-11-15 06:56:18 -08:00
mach_bootstrap.py Fix test-wpt and test-css for Windows. 2016-11-16 10:38:15 -07:00
README.md Fix styling for Markdown headers. 2016-05-02 22:20:49 -04:00
requirements.txt Add mako to required python packages 2016-10-03 12:37:11 -04:00
tox.ini Added tox.ini 2016-05-08 12:10:48 +02:00

This directory contains various Python modules used to support servo development.

servo

servo-specific python code e.g. implementations of mach commands. This is the canonical repository for this code.

tidy

servo-tidy is used to check licenses, line lengths, whitespace, flake8 on Python files, lock file versions, and more.