Content¶
- Rough TODO
- Changes
- Config use and implementation notes
- Checking the source out
- Installing pkgcore
- Ebuild EAPI
- Feature (FEATURES) categories
- Filesystem Operations
- Python Code Guidelines
- Follow pep8, with following exemptions
- Throw self with a NotImplementedError
- Be aware of what the interpreter is actually doing
- Don’t explicitly use has_key. Rely on the ‘in’ operator
- Do not use [] or {} as default args in function/method definitions
- Visible curried functions should have documentation
- Unit testing
- If it’s FS related code, it’s _usually_ cheaper to try then to ask then try
- Catching Exceptions in python code (rather then cpython) isn’t cheap
- cpython ‘leaks’ vars into local namespace for certain constructs
- Unless you need to generate (and save) a range result, use xrange
- Removals from a list aren’t cheap, especially left most
- If you’re testing for None specifically, be aware of the ‘is’ operator
- Deprecated/crappy modules
- Know the exceptions that are thrown, and catch just those you’re interested in
- tuples versus lists.
- Don’t try to copy immutable instances (e.g. tuples/strings)
- __del__ methods mess with garbage collection
- A general point: python isn’t slow, your algorithm is
- What’s up with __hash__ and dicts
- __eq__ and __ne__
- __eq__/__hash__ and subclassing
- Exception subclassing
- Memory debugging
- resolver
- resolver redesign
- config/use issues
- How to use guppy/heapy for tracking down memory usage
- Plugins system
- Pkgcore/Portage differences
- Tackling domain
- Testing
- perl CPAN
- dpkg
- WARNING
- Introduction