Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
OpenDAS
dgl
Commits
2883eda6
Commit
2883eda6
authored
Oct 05, 2018
by
Minjie Wang
Browse files
[DOC] initial docs
parents
c468e068
1209978d
Changes
49
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
296 additions
and
117 deletions
+296
-117
docs/source/conf.py
docs/source/conf.py
+181
-0
docs/source/index.rst
docs/source/index.rst
+30
-0
docs/source/install/index.rst
docs/source/install/index.rst
+74
-0
docs/source/tutorials/index.rst
docs/source/tutorials/index.rst
+4
-0
python/dgl/__init__.py
python/dgl/__init__.py
+1
-1
python/dgl/batched_graph.py
python/dgl/batched_graph.py
+6
-4
python/dgl/nx_adapt.py
python/dgl/nx_adapt.py
+0
-111
python/dgl/subgraph.py
python/dgl/subgraph.py
+0
-1
tests/pytorch/test_batched_graph.py
tests/pytorch/test_batched_graph.py
+0
-0
No files found.
docs/source/conf.py
0 → 100644
View file @
2883eda6
# -*- coding: utf-8 -*-
#
# Configuration file for the Sphinx documentation builder.
#
# This file does only contain a selection of the most common options. For a
# full list see the documentation:
# http://www.sphinx-doc.org/en/master/config
# -- Path setup --------------------------------------------------------------
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#
import
os
import
sys
sys
.
path
.
insert
(
0
,
os
.
path
.
abspath
(
'../../python'
))
# -- Project information -----------------------------------------------------
project
=
'DGL'
copyright
=
'2018, DGL Team'
author
=
'DGL Team'
# The short X.Y version
version
=
'0.0.1'
# The full version, including alpha/beta/rc tags
release
=
'0.0.1'
# -- General configuration ---------------------------------------------------
# If your documentation needs a minimal Sphinx version, state it here.
#
# needs_sphinx = '1.0'
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions
=
[
'sphinx.ext.autodoc'
,
'sphinx.ext.autosummary'
,
'sphinx.ext.coverage'
,
'sphinx.ext.mathjax'
,
'sphinx.ext.napoleon'
,
'sphinx.ext.viewcode'
,
]
# Add any paths that contain templates here, relative to this directory.
templates_path
=
[
'_templates'
]
# The suffix(es) of source filenames.
# You can specify multiple suffix as a list of string:
#
source_suffix
=
[
'.rst'
,
'.md'
]
# The master toctree document.
master_doc
=
'index'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
#
# This is also used if you do content translation via gettext catalogs.
# Usually you set "language" from the command line for these cases.
language
=
None
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This pattern also affects html_static_path and html_extra_path.
exclude_patterns
=
[]
# The name of the Pygments (syntax highlighting) style to use.
pygments_style
=
None
# -- Options for HTML output -------------------------------------------------
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
#
html_theme
=
'sphinx_rtd_theme'
# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
# documentation.
#
# html_theme_options = {}
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path
=
[
'_static'
]
# Custom sidebar templates, must be a dictionary that maps document names
# to template names.
#
# The default sidebars (for documents that don't match any pattern) are
# defined by theme itself. Builtin themes are using these templates by
# default: ``['localtoc.html', 'relations.html', 'sourcelink.html',
# 'searchbox.html']``.
#
# html_sidebars = {}
# -- Options for HTMLHelp output ---------------------------------------------
# Output file base name for HTML help builder.
htmlhelp_basename
=
'dgldoc'
# -- Options for LaTeX output ------------------------------------------------
latex_elements
=
{
# The paper size ('letterpaper' or 'a4paper').
#
# 'papersize': 'letterpaper',
# The font size ('10pt', '11pt' or '12pt').
#
# 'pointsize': '10pt',
# Additional stuff for the LaTeX preamble.
#
# 'preamble': '',
# Latex figure (float) alignment
#
# 'figure_align': 'htbp',
}
# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title,
# author, documentclass [howto, manual, or own class]).
latex_documents
=
[
(
master_doc
,
'dgl.tex'
,
'dgl Documentation'
,
'DGL Team'
,
'manual'
),
]
# -- Options for manual page output ------------------------------------------
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages
=
[
(
master_doc
,
'dgl'
,
'dgl Documentation'
,
[
author
],
1
)
]
# -- Options for Texinfo output ----------------------------------------------
# Grouping the document tree into Texinfo files. List of tuples
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents
=
[
(
master_doc
,
'dgl'
,
'dgl Documentation'
,
author
,
'dgl'
,
'One line description of project.'
,
'Miscellaneous'
),
]
# -- Options for Epub output -------------------------------------------------
# Bibliographic Dublin Core info.
epub_title
=
project
# The unique identifier of the text. This can be a ISBN number
# or the project homepage.
#
# epub_identifier = ''
# A unique identification for the text.
#
# epub_uid = ''
# A list of files that should not be packed into the epub file.
epub_exclude_files
=
[
'search.html'
]
# -- Extension configuration -------------------------------------------------
docs/source/index.rst
0 → 100644
View file @
2883eda6
.. DGL documentation master file, created by
sphinx-quickstart on Fri Oct 5 14:18:01 2018.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
Welcome to DGL's documentation!
===============================
.. toctree::
:maxdepth: 2
:caption: Contents:
Get Started
-----------
.. toctree::
:maxdepth: 2
install/index
tutorials/index
API Reference
-------------
.. toctree::
:maxdepth: 2
api/python/index
Index
-----
* :ref:`genindex`
docs/source/install/index.rst
0 → 100644
View file @
2883eda6
Install DGL
============
At this stage, we recommend installing DGL from source. To quickly try out DGL and its demo/tutorials, checkout `Install from docker`_.
Get source codes
----------------
First, download the source files from github. Note you need to use the ``--recursive`` option to
also clone the submodules.
.. code:: bash
git clone --recursive https://github.com/jermainewang/dgl.git
You can also clone the repository first and type following commands:
.. code:: bash
git submodule init
git submodule update
Build shared library
--------------------
Before building the library, please make sure the following dependencies are installed
(use ubuntu as an example):
.. code:: bash
sudo apt-get update
sudo apt-get install -y python
We use cmake (minimal version 2.8) to build the library.
.. code:: bash
mkdir build
cd build
cmake ..
make -j4
Build python binding
--------------------
DGL's python binding depends on following packages (tested version):
* numpy (>= 1.14.0)
* scipy (>= 1.1.0)
* networkx (>= 2.1)
To install them, use following command:
.. code:: bash
pip install --user numpy scipy networkx
There are several ways to setup DGL's python binding. We recommend developers at the current stage
use environment variables to find python packages.
.. code:: bash
export DGL_HOME=/path/to/dgl
export PYTHONPATH=$DGL_HOME$/python:${PYTHONPATH}
export DGL_LIBRARY_PATH=$DGL_HOME$/build
The ``DGL_LIBRARY_PATH`` variable is used for our python package to locate the shared library
built above. Use following command to test whether the installation is successful or not.
.. code:: bash
python -c 'import dgl'
Install from docker
-------------------
TBD
docs/source/tutorials/index.rst
0 → 100644
View file @
2883eda6
Tutorials
=========
TBD: Get started on DGL
python/dgl/__init__.py
View file @
2883eda6
...
...
@@ -9,7 +9,7 @@ from ._ffi.function import register_func, get_global_func, list_global_func_name
from
._ffi.base
import
DGLError
,
__version__
from
.base
import
ALL
from
.batch
import
batch
,
unbatch
from
.batch
ed_graph
import
*
from
.generator
import
*
from
.graph
import
DGLGraph
,
__MSG__
,
__REPR__
from
.subgraph
import
DGLSubGraph
python/dgl/batch.py
→
python/dgl/batch
ed_graph
.py
View file @
2883eda6
...
...
@@ -10,6 +10,8 @@ from . import graph_index as gi
from
.
import
backend
as
F
from
.
import
utils
__all__
=
[
'BatchedDGLGraph'
,
'batch'
,
'unbatch'
,
'split'
]
class
BatchedDGLGraph
(
DGLGraph
):
"""The batched DGL graph.
...
...
@@ -74,15 +76,15 @@ class BatchedDGLGraph(DGLGraph):
# override APIs
def
add_nodes
(
self
,
num
,
reprs
=
None
):
"""Add nodes."""
"""Add nodes.
Disabled because BatchedDGLGraph is read-only.
"""
raise
RuntimeError
(
'Readonly graph. Mutation is not allowed.'
)
def
add_edge
(
self
,
u
,
v
,
reprs
=
None
):
"""Add one edge."""
"""Add one edge.
Disabled because BatchedDGLGraph is read-only.
"""
raise
RuntimeError
(
'Readonly graph. Mutation is not allowed.'
)
def
add_edges
(
self
,
u
,
v
,
reprs
=
None
):
"""Add many edges."""
"""Add many edges.
Disabled because BatchedDGLGraph is read-only.
"""
raise
RuntimeError
(
'Readonly graph. Mutation is not allowed.'
)
# new APIs
...
...
@@ -146,7 +148,7 @@ def split(graph_batch, num_or_size_splits):
pass
def
unbatch
(
graph
):
"""Unbatch
the graph
and return
a
list of
sub
graphs.
"""Unbatch and return
the
list of graphs
in this batch
.
Parameters
----------
...
...
python/dgl/nx_adapt.py
deleted
100644 → 0
View file @
c468e068
"""Utility functions for networkx adapter."""
from
__future__
import
absolute_import
from
collections
import
MutableMapping
import
networkx
as
nx
import
networkx.convert
as
convert
class
NodeDict
(
MutableMapping
):
def
__init__
(
self
,
add_cb
,
del_cb
):
self
.
_dict
=
{}
self
.
_add_cb
=
add_cb
self
.
_del_cb
=
del_cb
def
__setitem__
(
self
,
key
,
val
):
self
.
_add_cb
(
key
)
self
.
_dict
[
key
]
=
val
def
__getitem__
(
self
,
key
):
return
self
.
_dict
[
key
]
def
__delitem__
(
self
,
key
):
self
.
_del_cb
(
key
)
del
self
.
_dict
[
key
]
def
__len__
(
self
):
return
len
(
self
.
_dict
)
def
__iter__
(
self
):
return
iter
(
self
.
_dict
)
class
AdjOuterDict
(
MutableMapping
):
def
__init__
(
self
,
add_cb
,
del_cb
):
self
.
_dict
=
{}
self
.
_add_cb
=
add_cb
self
.
_del_cb
=
del_cb
def
__setitem__
(
self
,
key
,
val
):
val
.
src
=
key
self
.
_dict
[
key
]
=
val
def
__getitem__
(
self
,
key
):
return
self
.
_dict
[
key
]
def
__delitem__
(
self
,
key
):
for
val
in
self
.
_dict
[
key
]:
self
.
_del_cb
(
key
,
val
)
del
self
.
_dict
[
key
]
def
__len__
(
self
):
return
len
(
self
.
_dict
)
def
__iter__
(
self
):
return
iter
(
self
.
_dict
)
class
AdjInnerDict
(
MutableMapping
):
def
__init__
(
self
,
add_cb
,
del_cb
):
self
.
_dict
=
{}
self
.
src
=
None
self
.
_add_cb
=
add_cb
self
.
_del_cb
=
del_cb
def
__setitem__
(
self
,
key
,
val
):
if
self
.
src
is
not
None
and
key
not
in
self
.
_dict
:
self
.
_add_cb
(
self
.
src
,
key
)
self
.
_dict
[
key
]
=
val
def
__getitem__
(
self
,
key
):
return
self
.
_dict
[
key
]
def
__delitem__
(
self
,
key
):
if
self
.
src
is
not
None
:
self
.
_del_cb
(
self
.
src
,
key
)
del
self
.
_dict
[
key
]
def
__len__
(
self
):
return
len
(
self
.
_dict
)
def
__iter__
(
self
):
return
iter
(
self
.
_dict
)
class
AdjInnerDictFactory
(
object
):
def
__init__
(
self
,
cb1
,
cb2
):
self
.
_cb1
=
cb1
self
.
_cb2
=
cb2
def
__call__
(
self
):
return
AdjInnerDict
(
self
.
_cb1
,
self
.
_cb2
)
def
nx_init
(
obj
,
add_node_cb
,
add_edge_cb
,
del_node_cb
,
del_edge_cb
,
graph_data
,
**
attr
):
"""Init the object to be compatible with networkx's DiGraph.
Parameters
----------
obj : any
The object to be init.
add_node_cb : callable
The callback function when node is added.
add_edge_cb : callable
The callback function when edge is added.
graph_data : graph data
Data to initialize graph. Same as networkx's semantics.
attr : keyword arguments, optional
Attributes to add to graph as key=value pairs.
"""
# The following codes work for networkx 2.1.
obj
.
adjlist_outer_dict_factory
=
None
obj
.
adjlist_inner_dict_factory
=
AdjInnerDictFactory
(
add_edge_cb
,
del_edge_cb
)
obj
.
edge_attr_dict_factory
=
dict
obj
.
root_graph
=
obj
obj
.
graph
=
{}
obj
.
_node
=
NodeDict
(
add_node_cb
,
del_node_cb
)
obj
.
_adj
=
AdjOuterDict
(
add_edge_cb
,
del_edge_cb
)
obj
.
_pred
=
dict
()
obj
.
_succ
=
obj
.
_adj
if
graph_data
is
not
None
:
convert
.
to_networkx_graph
(
graph_data
,
create_using
=
obj
)
obj
.
graph
.
update
(
attr
)
python/dgl/subgraph.py
View file @
2883eda6
...
...
@@ -6,7 +6,6 @@ import networkx as nx
from
.
import
backend
as
F
from
.frame
import
Frame
,
FrameRef
from
.graph
import
DGLGraph
from
.nx_adapt
import
nx_init
from
.
import
utils
class
DGLSubGraph
(
DGLGraph
):
...
...
tests/pytorch/test_
graph_batc
h.py
→
tests/pytorch/test_
batched_grap
h.py
View file @
2883eda6
File moved
Prev
1
2
3
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment