Mercurial > p > roundup > code
annotate roundup/dist/command/build_doc.py @ 5632:a29a8dae2095
Initial implementation of function to return data for / and /data
endpoints under /rest/.
/rest/ returns:
1) default_version of the interface and supported_version array
2) list of links with rel and uri properties that indicate
what assets are available under /rest. E.g. /rest/data
/data returns:
a list of possible assets (e.g. issue, user, keyword, status)
and links for accessing those assets.
E.G.
{
"data": {
"keyword": {
"link": "https://example.net/demo/rest/data/keyword"
},
"user": {
"link": "https://example.net/demo/rest/data/user"
}, ...
}
}
Both of these are currently hand coded. Others will be doing more
development on the rest interface. These two examples are meant to
spark discussion on what the payloads returned by the rest interface
should look like and give some ideas around HATEOAS.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Fri, 01 Mar 2019 23:24:40 -0500 |
| parents | 7612b86bec69 |
| children | 42bf0a707763 |
| rev | line source |
|---|---|
|
4033
bca7c59ac400
Enhance documentation generation.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
1 # |
|
bca7c59ac400
Enhance documentation generation.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
2 # Copyright (C) 2009 Stefan Seefeld |
|
bca7c59ac400
Enhance documentation generation.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
3 # All rights reserved. |
|
bca7c59ac400
Enhance documentation generation.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
4 # For license terms see the file COPYING.txt. |
|
bca7c59ac400
Enhance documentation generation.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
5 # |
|
bca7c59ac400
Enhance documentation generation.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
6 |
|
bca7c59ac400
Enhance documentation generation.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
7 import os, sys |
|
bca7c59ac400
Enhance documentation generation.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
8 import os.path |
|
bca7c59ac400
Enhance documentation generation.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
9 import glob |
|
bca7c59ac400
Enhance documentation generation.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
10 |
|
bca7c59ac400
Enhance documentation generation.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
11 from distutils.command import build |
|
bca7c59ac400
Enhance documentation generation.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
12 from distutils.spawn import spawn, find_executable |
|
bca7c59ac400
Enhance documentation generation.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
13 from distutils.dep_util import newer, newer_group |
|
bca7c59ac400
Enhance documentation generation.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
14 from distutils.dir_util import copy_tree, remove_tree, mkpath |
|
bca7c59ac400
Enhance documentation generation.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
15 from distutils.file_util import copy_file |
|
bca7c59ac400
Enhance documentation generation.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
16 from distutils import sysconfig |
|
bca7c59ac400
Enhance documentation generation.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
17 |
|
bca7c59ac400
Enhance documentation generation.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
18 class build_doc(build.build): |
|
bca7c59ac400
Enhance documentation generation.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
19 """Defines the specific procedure to build roundup's documentation.""" |
|
bca7c59ac400
Enhance documentation generation.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
20 |
|
bca7c59ac400
Enhance documentation generation.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
21 description = "build documentation" |
|
bca7c59ac400
Enhance documentation generation.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
22 |
|
bca7c59ac400
Enhance documentation generation.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
23 def run(self): |
|
bca7c59ac400
Enhance documentation generation.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
24 """Run this command, i.e. do the actual document generation.""" |
|
bca7c59ac400
Enhance documentation generation.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
25 |
|
bca7c59ac400
Enhance documentation generation.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
26 sphinx = find_executable('sphinx-build') |
|
4810
7b575e1f7368
setup.py build_doc: try Python-installed Sphinx if command
anatoly techtonik <techtonik@gmail.com>
parents:
4033
diff
changeset
|
27 if sphinx: |
|
7b575e1f7368
setup.py build_doc: try Python-installed Sphinx if command
anatoly techtonik <techtonik@gmail.com>
parents:
4033
diff
changeset
|
28 sphinx = [sphinx] |
|
7b575e1f7368
setup.py build_doc: try Python-installed Sphinx if command
anatoly techtonik <techtonik@gmail.com>
parents:
4033
diff
changeset
|
29 else: |
|
7b575e1f7368
setup.py build_doc: try Python-installed Sphinx if command
anatoly techtonik <techtonik@gmail.com>
parents:
4033
diff
changeset
|
30 try: # try to find version installed with Python tools |
|
7b575e1f7368
setup.py build_doc: try Python-installed Sphinx if command
anatoly techtonik <techtonik@gmail.com>
parents:
4033
diff
changeset
|
31 # tested with Sphinx 1.1.3 |
|
7b575e1f7368
setup.py build_doc: try Python-installed Sphinx if command
anatoly techtonik <techtonik@gmail.com>
parents:
4033
diff
changeset
|
32 import sphinx as sp |
|
7b575e1f7368
setup.py build_doc: try Python-installed Sphinx if command
anatoly techtonik <techtonik@gmail.com>
parents:
4033
diff
changeset
|
33 except ImportError: |
|
7b575e1f7368
setup.py build_doc: try Python-installed Sphinx if command
anatoly techtonik <techtonik@gmail.com>
parents:
4033
diff
changeset
|
34 pass |
|
7b575e1f7368
setup.py build_doc: try Python-installed Sphinx if command
anatoly techtonik <techtonik@gmail.com>
parents:
4033
diff
changeset
|
35 else: |
|
7b575e1f7368
setup.py build_doc: try Python-installed Sphinx if command
anatoly techtonik <techtonik@gmail.com>
parents:
4033
diff
changeset
|
36 sphinx = [sys.executable, sp.__file__] |
|
7b575e1f7368
setup.py build_doc: try Python-installed Sphinx if command
anatoly techtonik <techtonik@gmail.com>
parents:
4033
diff
changeset
|
37 |
|
4033
bca7c59ac400
Enhance documentation generation.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
38 if not sphinx: |
|
bca7c59ac400
Enhance documentation generation.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
39 self.warn("could not find sphinx-build in PATH") |
|
bca7c59ac400
Enhance documentation generation.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
40 self.warn("cannot build documentation") |
|
bca7c59ac400
Enhance documentation generation.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
41 return |
|
bca7c59ac400
Enhance documentation generation.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
42 |
|
bca7c59ac400
Enhance documentation generation.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
43 doc_dir = os.path.join('share', 'doc', 'roundup', 'html') |
|
bca7c59ac400
Enhance documentation generation.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
44 temp_dir = os.path.join(self.build_temp, 'doc') |
|
4810
7b575e1f7368
setup.py build_doc: try Python-installed Sphinx if command
anatoly techtonik <techtonik@gmail.com>
parents:
4033
diff
changeset
|
45 cmd = sphinx + ['-d', temp_dir, 'doc', doc_dir] |
|
4033
bca7c59ac400
Enhance documentation generation.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
46 spawn(cmd) |
