legionio 0.3.1 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
+ }