Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 3187235

Browse files
committed
DOC : start to move MEP to docs
Moved template and MEP25. If people think this is a good idea, we can move the rest of them over from the wiki as well.
1 parent 6962aac commit 3187235

File tree

4 files changed

+121
-0
lines changed

4 files changed

+121
-0
lines changed

doc/devel/MEP/MEP25.rst

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
.. contents:: Table of Contents
2+
3+
.. author:: Andrew Seier
4+
5+
.. date:: July 11, 2014
6+
7+
MEP25: Serialization
8+
====================
9+
10+
11+
Status
12+
------
13+
14+
**Discussion**
15+
16+
Branches and Pull requests
17+
--------------------------
18+
19+
* development branches:
20+
21+
* related pull requests:
22+
23+
Abstract
24+
--------
25+
26+
This MEP aims at adding a serializable ``Controller`` objects to act as an ``Artist`` managers. Users would then communicate changes to an ``Artist`` via a ``Controller``. In this way, functionality of the ``Controller`` objects may be added incrementally since each ``Artist`` is still responsible for drawing everything. The goal is to create an API that is usable both by graphing libraries requiring high-level descriptions of figures and libraries requiring low-level interpretations.
27+
28+
Detailed description
29+
--------------------
30+
31+
Matplotlib is a core plotting engine with an API that many users already understand. It's difficult/impossible for other graphing libraries to (1) get a complete figure description, (2) output raw data from the figure object as the user has provided it, (3) understand the semantics of the figure objects without heuristics, and (4) give matplotlib a complete figure description to visualize. In addition, because an ``Artist`` has no conception of its own semantics within the figure, it's difficult to interact with them in a natural way.
32+
33+
In this sense, matplotlib will adopt a standard Model-View-Controller (MVC) framework. The *Model* will be the user defined data, style, and semantics. The *Views* are the ensemble of each individual ``Artist``, which are responsible for producing the final image based on the *model*. The *Controller* will be the ``Controller`` object managing its set of ``Artist`` objects.
34+
35+
The ``Controller`` must be able to export the information that it's carrying about the figure on command, perhaps via a ``to_json`` method or similar. Because it would be extremely extraneous to duplicate all of the information in the model with the controller, only user-specified information (data + style) are explicitly kept. If a user wants more information (defaults) from the view/model, it should be able to query for it.
36+
37+
- This might be annoying to do, non-specified kwargs are pulled from the rcParams object which is in turn created from reading a user specified file and can be dynamically changed at run time. I suppose we could keep a dict of default defaults and compare against that. Not clear how this will interact with the style sheet [[MEP26]] - @tacaswell
38+
39+
Additional Notes:
40+
41+
* The `raw data` does not necessarily need to be a ``list``, ``ndarray``, etc. Rather, it can more abstractly just have a method to yield data when needed.
42+
43+
* Because the ``Controller`` will contain extra information that users may not want to keep around, it should *not* be created by default. You should be able to both (a) instantiate a ``Controller`` with a figure and (b) build a figure with a ``Controller``.
44+
45+
Use Cases:
46+
47+
* Export all necessary informat

doc/devel/MEP/index.rst

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
.. _MEP-index:
2+
3+
################################
4+
Matplotlib Enhancement Proposals
5+
################################
6+
7+
.. htmlonly::
8+
9+
:Release: |version|
10+
:Date: |today|
11+
12+
.. toctree::
13+
:maxdepth: 1
14+
15+
template
16+
MEP25

doc/devel/MEP/template.rst

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
.. contents:: Table of Contents
2+
3+
.. author:: Michael Droettboom
4+
5+
.. date:: August 3, 2012
6+
7+
8+
MEP Template
9+
============
10+
11+
12+
This MEP template is a guideline of the sections that a MEP should contain. Extra sections may be added if appropriate, and unnecessary sections may be noted as such.
13+
14+
Status
15+
------
16+
17+
MEPs go through a number of phases in their lifetime:
18+
19+
- **Discussion**: The MEP is being actively discussed on the mailing list and it is being improved by its author. The mailing list discussion of the MEP should include the MEP number (MEPxxx) in the subject line so they can be easily related to the MEP.
20+
21+
- **Progress**: Consensus was reached on the mailing list and implementation work has begun.
22+
23+
- **Completed**: The implementation has been merged into master.
24+
25+
- **Superseded**: This MEP has been abandoned in favor of another approach.
26+
27+
Branches and Pull requests
28+
--------------------------
29+
30+
All development branches containing work on this MEP should be linked to from here.
31+
32+
All pull requests submitted relating to this MEP should be linked to from here. (A MEP does not need to be implemented in a single pull request if it makes sense to implement it in discrete phases).
33+
34+
Abstract
35+
--------
36+
37+
The abstract should be a short description of what the MEP will achieve.
38+
39+
Detailed description
40+
--------------------
41+
42+
This section describes the need for the MEP. It should describe the existing problem that it is trying to solve and why this MEP makes the situation better. It should include examples of how the new functionality would be used and perhaps some use cases.
43+
44+
Implementation
45+
--------------
46+
47+
This section lists the major steps required to implement the MEP. Where possible, it should be noted where one step is dependent on another, and which steps may be optionally omitted. Where it makes sense, each step should include a link related pull requests as the implementation progresses.
48+
49+
Backward compatibility
50+
----------------------
51+
52+
This section describes the ways in which the MEP breaks backward incompatibility.
53+
54+
Alternatives
55+
------------
56+
57+
If there were any alternative solutions to solving the same problem, they should be discussed here, along with a justification for the chosen approach.

doc/devel/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,4 @@ The Matplotlib Developers' Guide
2222
transformations.rst
2323
add_new_projection.rst
2424
color_changes
25+
MEP/index

0 commit comments

Comments
 (0)