GithubHelp home page GithubHelp logo

stephenmm / pynsource Goto Github PK

View Code? Open in Web Editor NEW
0.0 0.0 0.0 20.13 MB

Automatically exported from code.google.com/p/pynsource

Batchfile 0.21% HTML 3.20% Python 79.63% Smarty 0.05% CSS 0.12% JavaScript 15.66% Java 0.16% PostScript 0.60% Shell 0.07% Inno Setup 0.02% Pascal 0.28%

pynsource's People

Contributors

abulka avatar dingus9 avatar

Watchers

 avatar

pynsource's Issues

Printing under Mac OsX spools multiple pages

What steps will reproduce the problem?
1.Create a diagram
2.Print

What is the expected output? What do you see instead?

Instead of printing one page, hundreds of pages are spooled very quickly.

Original issue reported on code.google.com by [email protected] on 5 Nov 2012 at 10:34

Display cardinality on lines/edges

What steps will reproduce the problem?
1. Import source code involving one to many associations
2. View the uml workspace
3. Look at the lines/edges produced

What is the expected output? 

Should see some edges with 1..* annotation

What do you see instead?

All annotations are the same (everything has the same line style)



Original issue reported on code.google.com by [email protected] on 31 Aug 2012 at 10:54

Yuml parsing output missing a full stop before __init__()

What steps will reproduce the problem?
1. python pynsource.py -y nopng generate_code\gen_asciiart.py
2. look at the text output
3. look for PySourceAsText

What is the expected output? 

PySourceAsText.__init__()

What do you see instead?

PySourceAsText__init__()

Note: the "." is missing from before the __init__()

Full output is:
---------------

[CmdLinePythonToAsciiArt|p|_GenerateAuxilliaryClasses();_CreateParser();_Process
();ExportTo()]p-.->[PySourceAsText__init__();_DumpAttribute();_DumpCompositeExtr
aFooter();_DumpClassNameAndGeneralisations();_DumpMethods();_Line();_DumpClassFo
oter()]
[CmdLineGenerator]^[CmdLinePythonToAsciiArt]
[ReportGenerator]^[PySourceAsText]

Original issue reported on code.google.com by [email protected] on 15 Jul 2012 at 2:11

Crash when importing if you first import a file containing no classes

What steps will reproduce the problem?
1. File/import python code hexagon1.py
2. File/import any other file e.g. hexpersistence.py

What is the expected output? What do you see instead?

Expect hexpersistence.py to be parsed and rendered in uml correctly.
Instead we get a crash.

NOTE: If you restart the app and import hexpersistence.py first, there are no 
problems.

Its as if importing hexagon1.py "corrupts" the app.  Possibly because it 
contains no classes? (just has functions etc).


Original issue reported on code.google.com by [email protected] on 15 Jul 2012 at 1:44

Attachments:

Importing a file with just comments crashes the parser

What steps will reproduce the problem?
1. File / New
2. File / Import
3. attached file, which happens to have only comments in it. See attached 
\trunk\src\__init__.py

What is the expected output? 

nothing, as there are no classes.

What do you see instead?

crash related to token parsing.



Original issue reported on code.google.com by [email protected] on 19 Jul 2012 at 2:16

Attachments:

Prepare deployment and install scripts for 1.6 release

Scripts for building releases are in a state of slight disrepair.

But essentially they are good - just need to reorganise/change the windows bat 
files, check mac script and retest under mac, and provide instructions for 
linux.

Original issue reported on code.google.com by [email protected] on 15 Jul 2012 at 1:06

Ascii layout - vertical line not straight

What steps will reproduce the problem?
1. import attached file
2. switch to ascii view
3. note the two issues circled in red

What is the expected output? What do you see instead?

straight line between CmdFileLoadWorkspaceBase and 
CmdFileLoadWorkspaceFromQuickPrompt

one more vertical spacing below CmdBootStrap 


Original issue reported on code.google.com by [email protected] on 28 Jul 2012 at 3:17

Attachments:

PyNSource not working. problem with configuration?

What steps will reproduce the problem?
1. started PyNSource  from the start menu
2. selected "Import Python" from file menu
3. selected two python source files from the file open dialog.
4. the application showed the hourglass and hanged itself.
5. there were errors in the console window.

What is the expected output? What do you see instead?
Expected to see UML diagram. saw the hourglass, nothing happened.

What version of the product are you using? On what operating system?
PyNSource 1.60 on Windows 7.

Please provide any additional information below.
The output in the console window (see attached screen shot)


Original issue reported on code.google.com by [email protected] on 25 Mar 2015 at 2:37

Attachments:

Can't interrupt layout

What steps will reproduce the problem?
1. run layout or deep layout on big diagram e.g. massive.txt
2. try to interrupt using esc

What is the expected output? What do you see instead?

Can't interrupt till layout has finished.

Should be able to interrupt.

Original issue reported on code.google.com by [email protected] on 15 Jul 2012 at 12:34

tokenize.Token error

What steps will reproduce the problem?
1.Try to import recursive a python file that appears empty with import.  [File 
lives in a multi- program directory program environment]
2. console displays cryptic error message about 'EOF in multiline statement
3.

What is the expected output? What do you see instead?
expect import of python file or explanation
instead get nothing from GUI interface and console cryptic message 

What version of the product are you using? On what operating system?
pynsource gui 1.51

Please provide any additional information below.
file for import attached

Console message:
Importing...
['C:\\MakeHuman-py\\makehuman.py']
_Process C:\MakeHuman-py\makehuman.py
Import - Done.
Importing...
['C:\\MakeHuman-py\\makehuman.py']
['C:\\MakeHuman-py\\BaerCopy2Blender.bat', 'C:\\MakeHuman-py\\cleannpz.bat', 
'C:\\MakeHuman-py\\cleannpz.sh', 'C:\\MakeHuman-py\\cleanpyc.ba
t', 'C:\\MakeHuman-py\\cleanpyc.sh', 'C:\\MakeHuman-py\\compile_models.py', 
'C:\\MakeHuman-py\\compile_targets.py', 'C:\\MakeHuman-py\\compr
essTargetsASCII.py', 'C:\\MakeHuman-py\\copy2blender.bat', 
'C:\\MakeHuman-py\\license.txt', 'C:\\MakeHuman-py\\main.c', 
'C:\\MakeHuman-py\\m
akehuman', 'C:\\MakeHuman-py\\makehuman.py', 'C:\\MakeHuman-py\\makehuman.rc', 
'C:\\MakeHuman-py\\makehuman.spec', 'C:\\MakeHuman-py\\makehu
man.svg', 'C:\\MakeHuman-py\\r6044 clothes crash3.zip', 
'C:\\MakeHuman-py\\SConstruct', 'C:\\MakeHuman-py\\setup.nsi']
_Process C:\MakeHuman-py\BaerCopy2Blender.bat
_Process C:\MakeHuman-py\cleannpz.bat
_Process C:\MakeHuman-py\cleannpz.sh
_Process C:\MakeHuman-py\cleanpyc.bat
_Process C:\MakeHuman-py\cleanpyc.sh
_Process C:\MakeHuman-py\compile_models.py
_Process C:\MakeHuman-py\compile_targets.py
_Process C:\MakeHuman-py\compressTargetsASCII.py
_Process C:\MakeHuman-py\copy2blender.bat
_Process C:\MakeHuman-py\license.txt
Traceback (most recent call last):
  File "pyNsourceGui.py", line 1206, in RecursivePathImport
  File "pyNsourceGui.py", line 642, in Go
  File "pyNsourceGui.py", line 502, in _Process
  File "pynsource.pyc", line 577, in Parse
  File "pynsource.pyc", line 96, in Parse
  File "pynsource.pyc", line 89, in _ReadAllTokensFromFile
  File "tokenize.pyc", line 352, in generate_tokens
tokenize.TokenError: ('EOF in multi-line statement', (301, 0))

Original issue reported on code.google.com by [email protected] on 5 Oct 2013 at 7:32

Attachments:

import a second time doesn't update workspace classes

What steps will reproduce the problem?
1. import a file with classes
2. add some extra code methods to the class in the .py file
3. import the .py file again

What is the expected output? What do you see instead?

Expect classes to be updated with new methods.
Instead, only new classes which may have been created are added to the 
workspace.  The methods and attributes of existing classes are not updated to 
reflect the situation in the python file.

My initial reply to the User who asked for this:
 I've checked and the import of source code will scan for new classes in the file but unfortunately, will not amend existing classes with new attributes/methods.
  I can see how improving this behaviour would be good.
  I think the autolayout on import might be good to switch off sometimes too, to avoid mucking up existing layouts.

Original issue reported on code.google.com by [email protected] on 9 Oct 2013 at 4:36

Print to file (local variable) throws exception when importing module.

Q: What steps will reproduce the problem?
1. Import any Python code that prints to file (version 3.2.3)
2. Sample code:

def censor(text):
    s_words = ['crap','damn','shit','fuck']
    for i in range(len(s_words)):
        text = text.replace(s_words[i],'****')
    return text

def main():
    infilename = "C:\\test_files\\censor_test.txt"
    outfilename = "C:\\test_files\\censor_test_output.txt"
    infile = open(infilename, "r")
    outfile = open(outfilename, "w")
    print("{0}".format(censor(infile.read())), file=outfile)
    infile.close
    outfile.close

if __name__ == '__main__': main()
#########################

Q: What is the expected output? What do you see instead?
A: I thought that the module would import and show a UML layout.
I saw:

Setting virtual size to 20,20
Importing... [u'C:\\Python32\\TestApps\\data_collections-ch11-prgexc11-file_cens
or.py']
Traceback (most recent call last):
  File "__main__pyNsourceGui__.py", line 456, in OnFileImport
  File "app/controller.py", line 44, in cmd_invoker_f
  File "common/command_pattern.py", line 101, in run
  File "app/cmds/filemgmt.py", line 64, in execute
  File "app/cmds/filemgmt.py", line 27, in execute
  File "parsing/api.py", line 25, in new_parser
  File "parsing/api.py", line 21, in ast_parser
  File "ast.py", line 37, in parse
  File "<unknown>", line 19
    print("{0}".format(censor(infile.read())), file=outfile)
                                                   ^
SyntaxError: invalid syntax



Q: What version of the product are you using? On what operating system?
A: I am using Python version 3.2.3. I am on Windows XP.

Q: Please provide any additional information below.
A: Thanks for PyNSource, it's a great resource!
I get this error when importing any code that has file=local_variable used with 
the print built-in function. The syntax works well when executing the modules. 

Thanks,
Sean

Original issue reported on code.google.com by [email protected] on 25 Oct 2013 at 3:43

Deep Layout Thread crashes on Mac and Linux

What steps will reproduce the problem?
1. Load a graph
2. Hit 'B' for deep layout
3. After layout we get exception / crash

What is the expected output? What do you see instead?

Expect no exception and a clean exit out of the dialog box.



Original issue reported on code.google.com by [email protected] on 26 Aug 2012 at 8:08

Load graph from erroneous text leads to losing whole diagram

What steps will reproduce the problem?
1.Create some random classes
2.Right click diagram -> Load Graph from text
3.Type some erroneous text (like `asdf`)
4.Press OK.

Console displays "Draw: Clear" and a stack trace. Diagram disappears, file not 
saved thus all work is gone.

Actually, this happened to me when trying to write code for an edge, not 
necessary asdf. asdf will genearate a NameError, but a typo generates other 
error type. See attached snapshot.


v: 1.61 Windows 7 64-bit

Original issue reported on code.google.com by [email protected] on 21 Jul 2014 at 12:02

Attachments:

Finish Image support

Finish Image support - currently it doesn't play well with layout and is not 
persisted.

Original issue reported on code.google.com by [email protected] on 20 Aug 2012 at 1:41

Overwriting a file doesn't warn the user

What steps will reproduce the problem?
1.Save diagram as an existing file.

The file is overwritten without any warning and the old content is lost. 
Personally, I think anyone would expect such warning, because 99% of existing 
software have it. This can be annoying when working with larger projects.

v. 1.61 Windows 7 64-bit




Original issue reported on code.google.com by [email protected] on 21 Jul 2014 at 12:09

Screen redraw inaccurate when window is scrolled

What steps will reproduce the problem?
1. bring up a layout
2. scroll window 
3. mousewheel to change the zoom/scale.

What is the expected output? What do you see instead?

Expect perfect redraw/refresh of the screen.

Instead partially drawn and clipped shapes are drawn.

Original issue reported on code.google.com by [email protected] on 15 Jul 2012 at 12:46

Parsing e.g. self.graph = graph produces no association

What steps will reproduce the problem?
1. Parse

class GraphRendererOgl:
    def __init__(self, graph, oglcanvas):
        self.graph = graph

2. Look at the resulting uml produced for the 'graph' attribute.

What is the expected output? What do you see instead?

GraphRendererOgl ----> nothing

  should be

GraphRendererOgl ----> Graph

Original issue reported on code.google.com by [email protected] on 15 Jul 2012 at 2:14

initial launch of pynsourcegui under Mac opens at bottom of screen

What steps will reproduce the problem?
1. launch on a mac
 e.g. ./rungui-osx.sh with wxpython 3 and default system python.


What is the expected output? What do you see instead?

Window should be visible and within the bounds of the screen.

Instead I see the top title bar at the bottom of the display screen.  Have to 
drag it into view.




Original issue reported on code.google.com by [email protected] on 14 Jan 2014 at 7:54

Cannot create UML from python code.

What steps will reproduce the problem?
1. Started pynsource from the 'start menu'
2. this is the error in the console.

What is the expected output? What do you see instead?


What version of the product are you using? On what operating system?
PyNsource 1.60
Windows 7

Please provide any additional information below.

Setting virtual size to 20,20
Traceback (most recent call last):
  File "wx/_core.py", line 14669, in <lambda>
  File "app/controller.py", line 44, in cmd_invoker_f
  File "common/command_pattern.py", line 101, in run
  File "app/cmds/filemgmt.py", line 92, in execute
  File "app/cmds/filemgmt.py", line 84, in bootstrap03
  File "app/controller.py", line 44, in cmd_invoker_f
  File "common/command_pattern.py", line 101, in run
  File "app/cmds/filemgmt.py", line 172, in execute
IOError: [Errno 2] No such file or directory: 'C:\\Program Files\\tests\\saved 
uml workspaces\\uml05.pyns'

Original issue reported on code.google.com by [email protected] on 25 Mar 2015 at 2:25

Attachments:

Class attribute associations not created

What steps will reproduce the problem?
1. Import gameemap.py (attached)
2. Look at the resulting UML for class _GameMapsManager
3. Look particularly at the attribute 'relations'

What is the expected output? What do you see instead?

Expect association pointer line FROM class _GameMapsManager TO class 
BigRelationshipManager1 but none exists.

Code seems clear enough, though these are CLASS ATTRIBUTES not instance 
attributes, which is what the problem probably is.

class _GameMapsManager(object):   # <<friend>>
    """
    Just call _GameMapsManager() any time you want a reference to
    the _GameMapsManager - you will get the same instance all the time.
    """

    relations = BigRelationshipManager1()
##    relations = relationshipManager()
    gamemaps = []
    quadrantsBucket = {}
    scenario = None

Original issue reported on code.google.com by [email protected] on 15 Jul 2012 at 1:56

Attachments:

parsing TypeError - Slice object not iteratable

What steps will reproduce the problem?
1.On GUI, Choose File > Import python code on attached source
2.Get attached console feedback
3.

What is the expected output? What do you see instead?
Expect at minimum 

What version of the product are you using? On what operating system?
1.61 on windows 8.

Please provide any additional information below.
python 2.7 


Original issue reported on code.google.com by [email protected] on 17 Aug 2013 at 6:14

View method parameters and change background color

What steps will reproduce the problem?
1. Create test.py
class Test(object):
        def __init__(self):
                pass

        def big_universe(self, why_not, agree=False):
                if agree:
                        print "Agreed!"

def testing(hello_str):
        print 'This works', hello_str*3

if __name__ == '__main__':
        Test().big_universe('hello world', agree=True)
        testing('!')

2. Run pynsource -> File -> Import python code -> test.py


What is the expected output? What do you see instead?
Expected 1: "big_universe(self, why_not, agree=False)" in class Test with 
method parameters and default values
Shown 1: "big_universe" in class Test without method parameters
Expected 2: A plain white color
Shown 2: A mild blueish background color

What version of the product are you using? On what operating system?
1.61-src.zip / Ubuntu
1.61-macosx / Lion

Please provide any additional information below.
PyNSource is great! It would be relatively easy to go over a small project 
using class diagrams that contain method parameters and its defaults if any. 
Ability to toggle this and the background color would be great. 

Original issue reported on code.google.com by [email protected] on 13 Dec 2012 at 6:55

Trying to zoom with ctrl+scroll up/down changes virtual size

What steps will reproduce the problem?
1.Draw some classes on diagram;
2.File -> Print/Preview;
3.Ctrl+mouse scroll up and down;

Nothing happens on GUI, but the console shows messages like "Setting virtual 
size to X, Y" at each scroll change. Now, closing the print preview and looking 
at the diagram, it is obvious that something (I think virtual size indeed :D) 
has changed.

If I select, in the print preview window, the zoom drop-down, then ctrl+mouse 
scroll changes that zoom value, which I think is what regular user expects.

Again, if I click something else (like left arrows) ctrl+scroll changes virtual 
size as before.

v. 1.61 Windows 7 64-bit

Original issue reported on code.google.com by [email protected] on 21 Jul 2014 at 12:30

Crash when switch to Ascii UML view when multiple inheritance uml

What steps will reproduce the problem?
1. File New
2. Import pynsourcegui.py (see attached)
3. Switch to Ascii view.

What is the expected output? 

Expect to see ascii uml.  

What do you see instead?

Instead crash occurs with message:

  File "F:\Devel\pyNsource\trunk\src\layout\graph.py", line 161, in nodes_sorted_by_generalisation
    assert len(result) == len(self.nodes), "Count increased! from %d to %d" %(len(self.nodes), len(result))
         # ensure not introducing duplicates

AssertionError: Count increased! from 9 to 10

Original issue reported on code.google.com by [email protected] on 6 Aug 2012 at 1:24

Does not work on OSX 64-bit

What steps will reproduce the problem?
1. In buildmac I changed

#FROM
ditto -rsrc --arch i386 dist/pyNsourceGui.app/ dist/pyNsourceGui32.app
#TO 
ditto -rsrc dist/pyNsourceGui.app/ dist/pyNsourceGui32.app
#AND
ditto -rsrc --arch x86_64 dist/pyNsourceGui.app/ dist/pyNsourceGui32.app

What is the expected output? What do you see instead?


What version of the product are you using? On what operating system?


Please provide any additional information below.

[0x0-0xa6ba6b].org.pythonmac.unspecified.pyNsourceGui[69983]: Traceback (most 
recent call last):
Aug 20 11:11:04 supports-MacBook-Pro-3 
[0x0-0xa6ba6b].org.pythonmac.unspecified.pyNsourceGui[69983]:   File 
"/Users/Lukasz/Documents/workspace/pynsource/dist/pyNsourceGui32.app/Contents/Re
sources/__boot__.py", line 103, in <module>
Aug 20 11:11:04 supports-MacBook-Pro-3 
[0x0-0xa6ba6b].org.pythonmac.unspecified.pyNsourceGui[69983]:     
_argv_emulation()
Aug 20 11:11:04 supports-MacBook-Pro-3 
[0x0-0xa6ba6b].org.pythonmac.unspecified.pyNsourceGui[69983]:   File 
"/Users/Lukasz/Documents/workspace/pynsource/dist/pyNsourceGui32.app/Contents/Re
sources/__boot__.py", line 101, in _argv_emulation
Aug 20 11:11:04 supports-MacBook-Pro-3 
[0x0-0xa6ba6b].org.pythonmac.unspecified.pyNsourceGui[69983]:     
_get_argvemulator().mainloop()
Aug 20 11:11:04 supports-MacBook-Pro-3 
[0x0-0xa6ba6b].org.pythonmac.unspecified.pyNsourceGui[69983]:   File 
"/Users/Lukasz/Documents/workspace/pynsource/dist/pyNsourceGui32.app/Contents/Re
sources/__boot__.py", line 40, in mainloop
Aug 20 11:11:04 supports-MacBook-Pro-3 
[0x0-0xa6ba6b].org.pythonmac.unspecified.pyNsourceGui[69983]:     stoptime = 
Evt.TickCount() + timeout
Aug 20 11:11:04 supports-MacBook-Pro-3 
[0x0-0xa6ba6b].org.pythonmac.unspecified.pyNsourceGui[69983]: AttributeError: 
'module' object has no attribute 'TickCount'
Aug 20 11:11:04 supports-MacBook-Pro-3 pyNsourceGui[69983]: pyNsourceGui Error


Original issue reported on code.google.com by [email protected] on 20 Aug 2012 at 9:15

Lines should be able to be deleted

What steps will reproduce the problem?
1.Create two classes;
2.Create a line between them;
3.Try to delete the line.

There is no option for deleting lines.
1.61 Windows 7 64-bit

Original issue reported on code.google.com by [email protected] on 21 Jul 2014 at 11:18

'q' and 'e' keychars sometimes not picked up or chars lost

What steps will reproduce the problem?
1. create two classes
2. select a class, hit 'q'
3. select another class, hit 'e'

What is the expected output? What do you see instead?

expect an association line to be created.
but nothing happens (sometimes),

1. create two classes
2. double click a class
3. edit some method names etc.

What is the expected output? What do you see instead?

expect 'q' and 'e' etc. chars to be entered when typed.  Sometimes those keys 
are swallowed somewhere and cannot be entered as part of a class name or method 
name etc. (sometimes)

NOTE: sometimes q and w and other menu shortcut keys WORK and sometimes they 
DON'T.  Must be some mode thing.

Original issue reported on code.google.com by [email protected] on 25 Aug 2014 at 11:18

TypeError: Slice Object is not Iterable

What steps will reproduce the problem?
1. download and install pynsource 1.61 (or standalone)
2. download matplotlib source code from github
3. import matplotlib/lib/matplotlib/color.py (or any other code in the folder) 
to pynsourceGUI

What is the expected output? What do you see instead?
Expected output is a nice UML diagram.
Instead, getting an error msg "TypeError: Slice Object is not iterable"

What version of the product are you using? On what operating system?
Tried both 1.61 and 1.60 on windows7

Please provide any additional information below.
There is no 'Slice' object in the code that I have tried.
So really don't know where it is coming from.
I just tried more code from the same folder, some files work and some gives 
error msg like that.
This does not happen in older version

Original issue reported on code.google.com by [email protected] on 25 Jan 2013 at 9:20

Saving workspace on mac doesn't add the .pyns extension

What steps will reproduce the problem?
1. Save a workspace
2. Type a name but don't add the .pyns extension
3. Try opening the file later

What is the expected output? What do you see instead?

You see the files but they are dimmed since they don't match the *.pyns

What version of the product are you using? On what operating system?

Mac Lion 

Please provide any additional information below.

Double check this issue on windows and linux.


Original issue reported on code.google.com by [email protected] on 23 Apr 2013 at 7:43

Finish Image support

Finish Image support - currently it doesn't play well with layout and is not 
persisted.

Original issue reported on code.google.com by [email protected] on 20 Aug 2012 at 1:41

Parser crashes on power operator

What steps will reproduce the problem?
1. parse any source with the ** operator
2. e.g.

class Incoming1:
    def HandlePowerOperator(self):
        x = 10**2
        print x

What is the expected output? What do you see instead?

crashes the parser.


Original issue reported on code.google.com by [email protected] on 6 Sep 2012 at 6:35

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.