Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/metaperl/python-oop

Catalog of Python object-oriented programming articles and links
https://github.com/metaperl/python-oop

Last synced: about 1 month ago
JSON representation

Catalog of Python object-oriented programming articles and links

Awesome Lists containing this project

README

        

# python-oop: Python object-oriented programming

## See the wiki for all new data!!!

https://github.com/metaperl/python-oop/wiki

## Core but nonetheless an add-on

[collections.namedtuple](https://docs.python.org/2/library/collections.html#collections.namedtuple) is often forgotten about. However, it is preferable to the use of dictionaries in many cases. [Discusssion](https://www.reddit.com/r/Python/comments/3qw7m4/improving_your_code_readability_with_namedtuples/)

# Add-ons

* [TypeSystem](https://www.encode.io/typesystem/)
* [Schematics](http://schematics.readthedocs.io)
* [attrs](https://attrs.readthedocs.io/en/stable/) - [Tutorial article](https://glyph.twistedmatrix.com/2016/08/attrs.html)
* [traitlets](https://github.com/ipython/traitlets)
* traitlite - yes this differs from traitlets! [discussion](https://www.reddit.com/r/Python/comments/bu2la4/traitlite_dependencyfree_traits_without/) and [github](https://github.com/lejar/traitlite).
* [Elk](https://github.com/frasertweedale/elk)
* [Enthought's Traits Package](https://docs.enthought.com/traits/)
* [Atom](https://github.com/nucleic/atom)
* [Yuppy](https://github.com/kuujo/yuppy)
* [strait](https://pypi.python.org/pypi/strait)
* [BasicProperty](http://basicproperty.sourceforge.net/)
* [PEAK Rules](https://pypi.python.org/pypi/PEAK-Rules)
* [metaparams](https://github.com/mementum/metaparams)
* [Zope interfaces](https://pypi.python.org/pypi/zope.interface)
* [catlizor](https://github.com/BTaskaya/catlizor)

# Method Munging

* [pyhooks](https://github.com/Shir0kamii/pyhooks) - pre and post hooks for your methods.
* [Connectible](https://github.com/timothycrosley/connectable#readme) - the Observer pattern
* [forwardable](https://pypi.python.org/pypi/forwardable/) - delegation

# Dependency Injection

https://github.com/metaperl/python-oop/wiki/Dependency-Injection--&--Inversion-of-Control

## Design Patterns

# Web Development / HTML Generation

https://github.com/metaperl/python-oop/wiki/Web-Application-Development

# Data Querying and Dictionary Wrappers

https://github.com/metaperl/python-oop/wiki/Data-Querying-and-Dictionary-Wrappers

# Literature

https://github.com/metaperl/python-oop/wiki - search for literature in the Pages textbox

# History

I intially made [a reddit post](https://www.reddit.com/r/Python/comments/2d9f7i/survey_of_python_object_systems/) followed by [a post to comp.lang.python](https://groups.google.com/forum/#!topic/comp.lang.python/vW9JTTI1GBA) on this subject.

When [metaparams was posted to the Python reddit](https://github.com/mementum/metaparams) I figured it was about time to have a central directory of such systems.