legionio 0.3.1 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +0 -11
  3. data/README.md +4 -1
  4. data/bin/legion +6 -47
  5. data/docs/Makefile +20 -0
  6. data/docs/_build/doctrees/environment.pickle +0 -0
  7. data/docs/_build/doctrees/index.doctree +0 -0
  8. data/docs/_build/doctrees/overview.doctree +0 -0
  9. data/docs/_build/html/.buildinfo +4 -0
  10. data/docs/_build/html/_sources/index.rst.txt +28 -0
  11. data/docs/_build/html/_sources/overview.rst.txt +0 -0
  12. data/docs/_build/html/_static/alabaster.css +701 -0
  13. data/docs/_build/html/_static/basic.css +855 -0
  14. data/docs/_build/html/_static/custom.css +1 -0
  15. data/docs/_build/html/_static/doctools.js +315 -0
  16. data/docs/_build/html/_static/documentation_options.js +12 -0
  17. data/docs/_build/html/_static/file.png +0 -0
  18. data/docs/_build/html/_static/jquery-3.5.1.js +10872 -0
  19. data/docs/_build/html/_static/jquery.js +2 -0
  20. data/docs/_build/html/_static/language_data.js +297 -0
  21. data/docs/_build/html/_static/minus.png +0 -0
  22. data/docs/_build/html/_static/plus.png +0 -0
  23. data/docs/_build/html/_static/pygments.css +82 -0
  24. data/docs/_build/html/_static/searchtools.js +514 -0
  25. data/docs/_build/html/_static/underscore-1.3.1.js +999 -0
  26. data/docs/_build/html/_static/underscore.js +31 -0
  27. data/docs/_build/html/genindex.html +101 -0
  28. data/docs/_build/html/index.html +117 -0
  29. data/docs/_build/html/objects.inv +6 -0
  30. data/docs/_build/html/overview.html +98 -0
  31. data/docs/_build/html/search.html +110 -0
  32. data/docs/_build/html/searchindex.js +1 -0
  33. data/docs/conf.py +54 -0
  34. data/docs/index.rst +28 -0
  35. data/docs/make.bat +35 -0
  36. data/exe/legion +6 -4
  37. data/lib/legion/extensions.rb +23 -62
  38. data/lib/legion/extensions/builders/runners.rb +5 -0
  39. data/lib/legion/extensions/helpers/lex.rb +29 -1
  40. data/lib/legion/extensions/transport.rb +9 -7
  41. data/lib/legion/service.rb +23 -3
  42. data/lib/legion/version.rb +1 -1
  43. metadata +34 -3
  44. data/settings/client.json +0 -25
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 054fe7a9c7707f232d0e93719567254ff8b1ca190f0248abc3b8ba1bcba45a84
4
- data.tar.gz: 658bd9bb7e565268e15fc768f7b7691eef6c77738ccd4fba1d87b6bf44e9fbb6
3
+ metadata.gz: 5a64a174cc967d97433e0fa569c4da77213fc776846b5bfc6c46d4e6887f42c5
4
+ data.tar.gz: b0cbf64bf7f4139ac878a5bb8ffdab0cead2066eb647ebac1d04e3c0ce7b2fa8
5
5
  SHA512:
6
- metadata.gz: 98a94510b0408b5f857adaaaa41efe74de4dcc0c509c21d5630001d9aa4a5af16cb2d7ecf5ff0174d310e6f9e159c81948c2e87c44067100d95e106db8b7e390
7
- data.tar.gz: 1c21c38abdbfc70e384a09604f88a712e5a1d240409443f7f50a8df75ed4f528f856c1a23b038d89d0f7e7c167d3b645df0ef07378d77ce6b311bbb34d27bd9c
6
+ metadata.gz: a83de46e58e9cfa4afb709bfdaa68f906afe107285b98ca5e925b8f34674fa58380b18a64d3b8fb73b208f52e8801739032bbf878c28142c378a3450e941379b
7
+ data.tar.gz: b7d79b0bb560f7d87a724958ad681688a60e7141579fce3618401af8934a6927ea9199905a272e337da4598a53eabab49b1057c3444147f9dd762cc3bb37f80f
data/Gemfile CHANGED
@@ -1,14 +1,3 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  gemspec
4
-
5
- gem 'lex-conditioner'
6
- gem 'lex-esphome'
7
- gem 'lex-health'
8
- gem 'lex-http'
9
- gem 'lex-influxdb'
10
- gem 'lex-lex'
11
- gem 'lex-log'
12
- gem 'lex-scheduler', path: '../../lex/lex-scheduler'
13
- gem 'lex-tasker'
14
- gem 'lex-transformer'
data/README.md CHANGED
@@ -22,8 +22,11 @@ Or install it yourself as:
22
22
  $ gem install legion
23
23
 
24
24
  ## Usage
25
+ #### Runing With Bundler
26
+
27
+
28
+ #### Installing binary with gem install
25
29
 
26
- TODO: Write usage instructions here
27
30
 
28
31
  ## Development
29
32
 
data/bin/legion CHANGED
@@ -4,60 +4,19 @@
4
4
  require 'optparse'
5
5
  require 'etc'
6
6
 
7
- options = { action: :run }
8
-
9
- daemonize_help = 'run daemonized in the background (default: false)'
10
- pidfile_help = 'the pid filename'
11
- logfile_help = 'the log filename'
12
- include_help = 'an additional $LOAD_PATH (may be used more than once)'
13
- debug_help = 'set $DEBUG to true'
14
- warn_help = 'enable warnings'
15
- time_help = 'only run legion for X seconds'
16
-
17
- op = OptionParser.new
18
- op.banner = 'An example of how to daemonize a long running Ruby process.'
19
- op.separator ''
20
- op.separator 'Usage: server [options]'
21
- op.separator ''
22
-
23
- op.separator ''
24
- op.separator 'Process options:'
25
- op.on('-d', '--daemonize', daemonize_help) { options[:daemonize] = true }
26
- op.on('-p', '--pid PIDFILE', pidfile_help) { |value| options[:pidfile] = value }
27
- op.on('-l', '--log LOGFILE', logfile_help) { |value| options[:logfile] = value }
28
- op.on('-t', '--time 10', time_help) { |value| options[:time_limit] = value }
29
-
30
- op.separator ''
31
- op.separator 'Ruby options:'
32
- op.on('-I', '--include PATH', include_help) do |value|
33
- $LOAD_PATH.unshift(*value.split(':').map do |v|
34
- File.expand_path(v)
35
- end)
36
- end
37
- op.on('--debug', debug_help) { $DEBUG = true }
38
- op.on('--warn', warn_help) { $-w = true }
39
-
40
- op.separator ''
41
- op.separator 'Common options:'
42
- op.on('-h', '--help') { options[:action] = :help }
43
- op.on('-v', '--version') { options[:action] = :version }
44
-
45
- op.separator ''
46
- op.parse!(ARGV)
47
-
48
7
  @children = []
49
8
  children = 5
50
9
  if children == 1
51
- require File.expand_path('lib/legion.rb') unless options[:action] == :help
52
- require File.expand_path('lib/legion/process.rb') unless options[:action] == :help
10
+ require 'legion'
11
+ require 'legion/process'
53
12
  Legion.start
54
13
  Legion::Process.new(options).run!
55
14
  else
56
15
  children.times do
57
16
  @children.push(
58
17
  Process.fork do
59
- require File.expand_path('lib/legion.rb') unless options[:action] == :help
60
- require File.expand_path('lib/legion/process.rb') unless options[:action] == :help
18
+ require 'legion'
19
+ require 'legion/process'
61
20
 
62
21
  Legion.start
63
22
  sleep(1)
@@ -73,7 +32,7 @@ else
73
32
  @children.each do |child|
74
33
  Process.kill('SIGINT', child)
75
34
  end
76
- sleep(5)
35
+ sleep(0.5)
77
36
  end
78
37
 
79
38
  trap('SIGTERM') do
@@ -81,7 +40,7 @@ else
81
40
  Process.kill('SIGTERM', child)
82
41
  end
83
42
 
84
- sleep(5)
43
+ sleep(1)
85
44
  end
86
45
 
87
46
  sleep(1) until @quit
@@ -0,0 +1,20 @@
1
+ # Minimal makefile for Sphinx documentation
2
+ #
3
+
4
+ # You can set these variables from the command line, and also
5
+ # from the environment for the first two.
6
+ SPHINXOPTS ?=
7
+ SPHINXBUILD ?= sphinx-build
8
+ SOURCEDIR = .
9
+ BUILDDIR = _build
10
+
11
+ # Put it first so that "make" without argument is like "make help".
12
+ help:
13
+ @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
14
+
15
+ .PHONY: help Makefile
16
+
17
+ # Catch-all target: route all unknown targets to Sphinx using the new
18
+ # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
19
+ %: Makefile
20
+ @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
@@ -0,0 +1,4 @@
1
+ # Sphinx build info version 1
2
+ # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
3
+ config: 1ff32d154946a76f6c36d42450bf619e
4
+ tags: 645f666f9bcd5a90fca523b33c5a78b7
@@ -0,0 +1,28 @@
1
+ .. LegionIO documentation master file, created by
2
+ sphinx-quickstart on Thu Oct 15 08:16:27 2020.
3
+ You can adapt this file completely to your liking, but it should at least
4
+ contain the root `toctree` directive.
5
+
6
+ LegionIO Overview
7
+ ==============================
8
+
9
+ About
10
+ ------------
11
+ LegionIO is a platform designed for connecting things. You install a LEX(Legion Extension)
12
+ which adds functionality to your Legion service?project?cluster? Whatever it's called.
13
+
14
+ A LEX contains 1 or more runners. Think of them as classes
15
+ A runner contains 1 or more functions. These are the things you can call and make relationships out of
16
+ Example
17
+
18
+ * Lex: pagerduty
19
+
20
+ * Runners: incident, user, service
21
+
22
+ * Functions within the incident runner: trigger, acknowledge, resolve, merge
23
+
24
+ * Functions within the services runner: create, delete, update, list, get
25
+
26
+ Any function can be a trigger or an action(the input or output in the relationship).
27
+
28
+ Legion works by creating chains of relationships to make make a complex workflow without complex yaml
@@ -0,0 +1,701 @@
1
+ @import url("basic.css");
2
+
3
+ /* -- page layout ----------------------------------------------------------- */
4
+
5
+ body {
6
+ font-family: Georgia, serif;
7
+ font-size: 17px;
8
+ background-color: #fff;
9
+ color: #000;
10
+ margin: 0;
11
+ padding: 0;
12
+ }
13
+
14
+
15
+ div.document {
16
+ width: 940px;
17
+ margin: 30px auto 0 auto;
18
+ }
19
+
20
+ div.documentwrapper {
21
+ float: left;
22
+ width: 100%;
23
+ }
24
+
25
+ div.bodywrapper {
26
+ margin: 0 0 0 220px;
27
+ }
28
+
29
+ div.sphinxsidebar {
30
+ width: 220px;
31
+ font-size: 14px;
32
+ line-height: 1.5;
33
+ }
34
+
35
+ hr {
36
+ border: 1px solid #B1B4B6;
37
+ }
38
+
39
+ div.body {
40
+ background-color: #fff;
41
+ color: #3E4349;
42
+ padding: 0 30px 0 30px;
43
+ }
44
+
45
+ div.body > .section {
46
+ text-align: left;
47
+ }
48
+
49
+ div.footer {
50
+ width: 940px;
51
+ margin: 20px auto 30px auto;
52
+ font-size: 14px;
53
+ color: #888;
54
+ text-align: right;
55
+ }
56
+
57
+ div.footer a {
58
+ color: #888;
59
+ }
60
+
61
+ p.caption {
62
+ font-family: inherit;
63
+ font-size: inherit;
64
+ }
65
+
66
+
67
+ div.relations {
68
+ display: none;
69
+ }
70
+
71
+
72
+ div.sphinxsidebar a {
73
+ color: #444;
74
+ text-decoration: none;
75
+ border-bottom: 1px dotted #999;
76
+ }
77
+
78
+ div.sphinxsidebar a:hover {
79
+ border-bottom: 1px solid #999;
80
+ }
81
+
82
+ div.sphinxsidebarwrapper {
83
+ padding: 18px 10px;
84
+ }
85
+
86
+ div.sphinxsidebarwrapper p.logo {
87
+ padding: 0;
88
+ margin: -10px 0 0 0px;
89
+ text-align: center;
90
+ }
91
+
92
+ div.sphinxsidebarwrapper h1.logo {
93
+ margin-top: -10px;
94
+ text-align: center;
95
+ margin-bottom: 5px;
96
+ text-align: left;
97
+ }
98
+
99
+ div.sphinxsidebarwrapper h1.logo-name {
100
+ margin-top: 0px;
101
+ }
102
+
103
+ div.sphinxsidebarwrapper p.blurb {
104
+ margin-top: 0;
105
+ font-style: normal;
106
+ }
107
+
108
+ div.sphinxsidebar h3,
109
+ div.sphinxsidebar h4 {
110
+ font-family: Georgia, serif;
111
+ color: #444;
112
+ font-size: 24px;
113
+ font-weight: normal;
114
+ margin: 0 0 5px 0;
115
+ padding: 0;
116
+ }
117
+
118
+ div.sphinxsidebar h4 {
119
+ font-size: 20px;
120
+ }
121
+
122
+ div.sphinxsidebar h3 a {
123
+ color: #444;
124
+ }
125
+
126
+ div.sphinxsidebar p.logo a,
127
+ div.sphinxsidebar h3 a,
128
+ div.sphinxsidebar p.logo a:hover,
129
+ div.sphinxsidebar h3 a:hover {
130
+ border: none;
131
+ }
132
+
133
+ div.sphinxsidebar p {
134
+ color: #555;
135
+ margin: 10px 0;
136
+ }
137
+
138
+ div.sphinxsidebar ul {
139
+ margin: 10px 0;
140
+ padding: 0;
141
+ color: #000;
142
+ }
143
+
144
+ div.sphinxsidebar ul li.toctree-l1 > a {
145
+ font-size: 120%;
146
+ }
147
+
148
+ div.sphinxsidebar ul li.toctree-l2 > a {
149
+ font-size: 110%;
150
+ }
151
+
152
+ div.sphinxsidebar input {
153
+ border: 1px solid #CCC;
154
+ font-family: Georgia, serif;
155
+ font-size: 1em;
156
+ }
157
+
158
+ div.sphinxsidebar hr {
159
+ border: none;
160
+ height: 1px;
161
+ color: #AAA;
162
+ background: #AAA;
163
+
164
+ text-align: left;
165
+ margin-left: 0;
166
+ width: 50%;
167
+ }
168
+
169
+ div.sphinxsidebar .badge {
170
+ border-bottom: none;
171
+ }
172
+
173
+ div.sphinxsidebar .badge:hover {
174
+ border-bottom: none;
175
+ }
176
+
177
+ /* To address an issue with donation coming after search */
178
+ div.sphinxsidebar h3.donation {
179
+ margin-top: 10px;
180
+ }
181
+
182
+ /* -- body styles ----------------------------------------------------------- */
183
+
184
+ a {
185
+ color: #004B6B;
186
+ text-decoration: underline;
187
+ }
188
+
189
+ a:hover {
190
+ color: #6D4100;
191
+ text-decoration: underline;
192
+ }
193
+
194
+ div.body h1,
195
+ div.body h2,
196
+ div.body h3,
197
+ div.body h4,
198
+ div.body h5,
199
+ div.body h6 {
200
+ font-family: Georgia, serif;
201
+ font-weight: normal;
202
+ margin: 30px 0px 10px 0px;
203
+ padding: 0;
204
+ }
205
+
206
+ div.body h1 { margin-top: 0; padding-top: 0; font-size: 240%; }
207
+ div.body h2 { font-size: 180%; }
208
+ div.body h3 { font-size: 150%; }
209
+ div.body h4 { font-size: 130%; }
210
+ div.body h5 { font-size: 100%; }
211
+ div.body h6 { font-size: 100%; }
212
+
213
+ a.headerlink {
214
+ color: #DDD;
215
+ padding: 0 4px;
216
+ text-decoration: none;
217
+ }
218
+
219
+ a.headerlink:hover {
220
+ color: #444;
221
+ background: #EAEAEA;
222
+ }
223
+
224
+ div.body p, div.body dd, div.body li {
225
+ line-height: 1.4em;
226
+ }
227
+
228
+ div.admonition {
229
+ margin: 20px 0px;
230
+ padding: 10px 30px;
231
+ background-color: #EEE;
232
+ border: 1px solid #CCC;
233
+ }
234
+
235
+ div.admonition tt.xref, div.admonition code.xref, div.admonition a tt {
236
+ background-color: #FBFBFB;
237
+ border-bottom: 1px solid #fafafa;
238
+ }
239
+
240
+ div.admonition p.admonition-title {
241
+ font-family: Georgia, serif;
242
+ font-weight: normal;
243
+ font-size: 24px;
244
+ margin: 0 0 10px 0;
245
+ padding: 0;
246
+ line-height: 1;
247
+ }
248
+
249
+ div.admonition p.last {
250
+ margin-bottom: 0;
251
+ }
252
+
253
+ div.highlight {
254
+ background-color: #fff;
255
+ }
256
+
257
+ dt:target, .highlight {
258
+ background: #FAF3E8;
259
+ }
260
+
261
+ div.warning {
262
+ background-color: #FCC;
263
+ border: 1px solid #FAA;
264
+ }
265
+
266
+ div.danger {
267
+ background-color: #FCC;
268
+ border: 1px solid #FAA;
269
+ -moz-box-shadow: 2px 2px 4px #D52C2C;
270
+ -webkit-box-shadow: 2px 2px 4px #D52C2C;
271
+ box-shadow: 2px 2px 4px #D52C2C;
272
+ }
273
+
274
+ div.error {
275
+ background-color: #FCC;
276
+ border: 1px solid #FAA;
277
+ -moz-box-shadow: 2px 2px 4px #D52C2C;
278
+ -webkit-box-shadow: 2px 2px 4px #D52C2C;
279
+ box-shadow: 2px 2px 4px #D52C2C;
280
+ }
281
+
282
+ div.caution {
283
+ background-color: #FCC;
284
+ border: 1px solid #FAA;
285
+ }
286
+
287
+ div.attention {
288
+ background-color: #FCC;
289
+ border: 1px solid #FAA;
290
+ }
291
+
292
+ div.important {
293
+ background-color: #EEE;
294
+ border: 1px solid #CCC;
295
+ }
296
+
297
+ div.note {
298
+ background-color: #EEE;
299
+ border: 1px solid #CCC;
300
+ }
301
+
302
+ div.tip {
303
+ background-color: #EEE;
304
+ border: 1px solid #CCC;
305
+ }
306
+
307
+ div.hint {
308
+ background-color: #EEE;
309
+ border: 1px solid #CCC;
310
+ }
311
+
312
+ div.seealso {
313
+ background-color: #EEE;
314
+ border: 1px solid #CCC;
315
+ }
316
+
317
+ div.topic {
318
+ background-color: #EEE;
319
+ }
320
+
321
+ p.admonition-title {
322
+ display: inline;
323
+ }
324
+
325
+ p.admonition-title:after {
326
+ content: ":";
327
+ }
328
+
329
+ pre, tt, code {
330
+ font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace;
331
+ font-size: 0.9em;
332
+ }
333
+
334
+ .hll {
335
+ background-color: #FFC;
336
+ margin: 0 -12px;
337
+ padding: 0 12px;
338
+ display: block;
339
+ }
340
+
341
+ img.screenshot {
342
+ }
343
+
344
+ tt.descname, tt.descclassname, code.descname, code.descclassname {
345
+ font-size: 0.95em;
346
+ }
347
+
348
+ tt.descname, code.descname {
349
+ padding-right: 0.08em;
350
+ }
351
+
352
+ img.screenshot {
353
+ -moz-box-shadow: 2px 2px 4px #EEE;
354
+ -webkit-box-shadow: 2px 2px 4px #EEE;
355
+ box-shadow: 2px 2px 4px #EEE;
356
+ }
357
+
358
+ table.docutils {
359
+ border: 1px solid #888;
360
+ -moz-box-shadow: 2px 2px 4px #EEE;
361
+ -webkit-box-shadow: 2px 2px 4px #EEE;
362
+ box-shadow: 2px 2px 4px #EEE;
363
+ }
364
+
365
+ table.docutils td, table.docutils th {
366
+ border: 1px solid #888;
367
+ padding: 0.25em 0.7em;
368
+ }
369
+
370
+ table.field-list, table.footnote {
371
+ border: none;
372
+ -moz-box-shadow: none;
373
+ -webkit-box-shadow: none;
374
+ box-shadow: none;
375
+ }
376
+
377
+ table.footnote {
378
+ margin: 15px 0;
379
+ width: 100%;
380
+ border: 1px solid #EEE;
381
+ background: #FDFDFD;
382
+ font-size: 0.9em;
383
+ }
384
+
385
+ table.footnote + table.footnote {
386
+ margin-top: -15px;
387
+ border-top: none;
388
+ }
389
+
390
+ table.field-list th {
391
+ padding: 0 0.8em 0 0;
392
+ }
393
+
394
+ table.field-list td {
395
+ padding: 0;
396
+ }
397
+
398
+ table.field-list p {
399
+ margin-bottom: 0.8em;
400
+ }
401
+
402
+ /* Cloned from
403
+ * https://github.com/sphinx-doc/sphinx/commit/ef60dbfce09286b20b7385333d63a60321784e68
404
+ */
405
+ .field-name {
406
+ -moz-hyphens: manual;
407
+ -ms-hyphens: manual;
408
+ -webkit-hyphens: manual;
409
+ hyphens: manual;
410
+ }
411
+
412
+ table.footnote td.label {
413
+ width: .1px;
414
+ padding: 0.3em 0 0.3em 0.5em;
415
+ }
416
+
417
+ table.footnote td {
418
+ padding: 0.3em 0.5em;
419
+ }
420
+
421
+ dl {
422
+ margin: 0;
423
+ padding: 0;
424
+ }
425
+
426
+ dl dd {
427
+ margin-left: 30px;
428
+ }
429
+
430
+ blockquote {
431
+ margin: 0 0 0 30px;
432
+ padding: 0;
433
+ }
434
+
435
+ ul, ol {
436
+ /* Matches the 30px from the narrow-screen "li > ul" selector below */
437
+ margin: 10px 0 10px 30px;
438
+ padding: 0;
439
+ }
440
+
441
+ pre {
442
+ background: #EEE;
443
+ padding: 7px 30px;
444
+ margin: 15px 0px;
445
+ line-height: 1.3em;
446
+ }
447
+
448
+ div.viewcode-block:target {
449
+ background: #ffd;
450
+ }
451
+
452
+ dl pre, blockquote pre, li pre {
453
+ margin-left: 0;
454
+ padding-left: 30px;
455
+ }
456
+
457
+ tt, code {
458
+ background-color: #ecf0f3;
459
+ color: #222;
460
+ /* padding: 1px 2px; */
461
+ }
462
+
463
+ tt.xref, code.xref, a tt {
464
+ background-color: #FBFBFB;
465
+ border-bottom: 1px solid #fff;
466
+ }
467
+
468
+ a.reference {
469
+ text-decoration: none;
470
+ border-bottom: 1px dotted #004B6B;
471
+ }
472
+
473
+ /* Don't put an underline on images */
474
+ a.image-reference, a.image-reference:hover {
475
+ border-bottom: none;
476
+ }
477
+
478
+ a.reference:hover {
479
+ border-bottom: 1px solid #6D4100;
480
+ }
481
+
482
+ a.footnote-reference {
483
+ text-decoration: none;
484
+ font-size: 0.7em;
485
+ vertical-align: top;
486
+ border-bottom: 1px dotted #004B6B;
487
+ }
488
+
489
+ a.footnote-reference:hover {
490
+ border-bottom: 1px solid #6D4100;
491
+ }
492
+
493
+ a:hover tt, a:hover code {
494
+ background: #EEE;
495
+ }
496
+
497
+
498
+ @media screen and (max-width: 870px) {
499
+
500
+ div.sphinxsidebar {
501
+ display: none;
502
+ }
503
+
504
+ div.document {
505
+ width: 100%;
506
+
507
+ }
508
+
509
+ div.documentwrapper {
510
+ margin-left: 0;
511
+ margin-top: 0;
512
+ margin-right: 0;
513
+ margin-bottom: 0;
514
+ }
515
+
516
+ div.bodywrapper {
517
+ margin-top: 0;
518
+ margin-right: 0;
519
+ margin-bottom: 0;
520
+ margin-left: 0;
521
+ }
522
+
523
+ ul {
524
+ margin-left: 0;
525
+ }
526
+
527
+ li > ul {
528
+ /* Matches the 30px from the "ul, ol" selector above */
529
+ margin-left: 30px;
530
+ }
531
+
532
+ .document {
533
+ width: auto;
534
+ }
535
+
536
+ .footer {
537
+ width: auto;
538
+ }
539
+
540
+ .bodywrapper {
541
+ margin: 0;
542
+ }
543
+
544
+ .footer {
545
+ width: auto;
546
+ }
547
+
548
+ .github {
549
+ display: none;
550
+ }
551
+
552
+
553
+
554
+ }
555
+
556
+
557
+
558
+ @media screen and (max-width: 875px) {
559
+
560
+ body {
561
+ margin: 0;
562
+ padding: 20px 30px;
563
+ }
564
+
565
+ div.documentwrapper {
566
+ float: none;
567
+ background: #fff;
568
+ }
569
+
570
+ div.sphinxsidebar {
571
+ display: block;
572
+ float: none;
573
+ width: 102.5%;
574
+ margin: 50px -30px -20px -30px;
575
+ padding: 10px 20px;
576
+ background: #333;
577
+ color: #FFF;
578
+ }
579
+
580
+ div.sphinxsidebar h3, div.sphinxsidebar h4, div.sphinxsidebar p,
581
+ div.sphinxsidebar h3 a {
582
+ color: #fff;
583
+ }
584
+
585
+ div.sphinxsidebar a {
586
+ color: #AAA;
587
+ }
588
+
589
+ div.sphinxsidebar p.logo {
590
+ display: none;
591
+ }
592
+
593
+ div.document {
594
+ width: 100%;
595
+ margin: 0;
596
+ }
597
+
598
+ div.footer {
599
+ display: none;
600
+ }
601
+
602
+ div.bodywrapper {
603
+ margin: 0;
604
+ }
605
+
606
+ div.body {
607
+ min-height: 0;
608
+ padding: 0;
609
+ }
610
+
611
+ .rtd_doc_footer {
612
+ display: none;
613
+ }
614
+
615
+ .document {
616
+ width: auto;
617
+ }
618
+
619
+ .footer {
620
+ width: auto;
621
+ }
622
+
623
+ .footer {
624
+ width: auto;
625
+ }
626
+
627
+ .github {
628
+ display: none;
629
+ }
630
+ }
631
+
632
+
633
+ /* misc. */
634
+
635
+ .revsys-inline {
636
+ display: none!important;
637
+ }
638
+
639
+ /* Make nested-list/multi-paragraph items look better in Releases changelog
640
+ * pages. Without this, docutils' magical list fuckery causes inconsistent
641
+ * formatting between different release sub-lists.
642
+ */
643
+ div#changelog > div.section > ul > li > p:only-child {
644
+ margin-bottom: 0;
645
+ }
646
+
647
+ /* Hide fugly table cell borders in ..bibliography:: directive output */
648
+ table.docutils.citation, table.docutils.citation td, table.docutils.citation th {
649
+ border: none;
650
+ /* Below needed in some edge cases; if not applied, bottom shadows appear */
651
+ -moz-box-shadow: none;
652
+ -webkit-box-shadow: none;
653
+ box-shadow: none;
654
+ }
655
+
656
+
657
+ /* relbar */
658
+
659
+ .related {
660
+ line-height: 30px;
661
+ width: 100%;
662
+ font-size: 0.9rem;
663
+ }
664
+
665
+ .related.top {
666
+ border-bottom: 1px solid #EEE;
667
+ margin-bottom: 20px;
668
+ }
669
+
670
+ .related.bottom {
671
+ border-top: 1px solid #EEE;
672
+ }
673
+
674
+ .related ul {
675
+ padding: 0;
676
+ margin: 0;
677
+ list-style: none;
678
+ }
679
+
680
+ .related li {
681
+ display: inline;
682
+ }
683
+
684
+ nav#rellinks {
685
+ float: right;
686
+ }
687
+
688
+ nav#rellinks li+li:before {
689
+ content: "|";
690
+ }
691
+
692
+ nav#breadcrumbs li+li:before {
693
+ content: "\00BB";
694
+ }
695
+
696
+ /* Hide certain items when printing */
697
+ @media print {
698
+ div.related {
699
+ display: none;
700
+ }
701
+ }