legionio 0.3.2 → 0.3.3

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 (90) hide show
  1. checksums.yaml +4 -4
  2. metadata +4 -94
  3. data/.circleci/config.yml +0 -119
  4. data/.gitignore +0 -14
  5. data/.rspec +0 -2
  6. data/.rubocop.yml +0 -89
  7. data/CHANGELOG.md +0 -16
  8. data/Gemfile +0 -3
  9. data/LICENSE.txt +0 -21
  10. data/README.md +0 -49
  11. data/Rakefile +0 -38
  12. data/bin/console +0 -16
  13. data/bin/legion +0 -49
  14. data/bin/setup +0 -8
  15. data/bin/test +0 -32
  16. data/bitbucket-pipelines.yml +0 -55
  17. data/docs/Makefile +0 -20
  18. data/docs/_build/doctrees/environment.pickle +0 -0
  19. data/docs/_build/doctrees/index.doctree +0 -0
  20. data/docs/_build/doctrees/overview.doctree +0 -0
  21. data/docs/_build/html/.buildinfo +0 -4
  22. data/docs/_build/html/_sources/index.rst.txt +0 -28
  23. data/docs/_build/html/_sources/overview.rst.txt +0 -0
  24. data/docs/_build/html/_static/alabaster.css +0 -701
  25. data/docs/_build/html/_static/basic.css +0 -855
  26. data/docs/_build/html/_static/custom.css +0 -1
  27. data/docs/_build/html/_static/doctools.js +0 -315
  28. data/docs/_build/html/_static/documentation_options.js +0 -12
  29. data/docs/_build/html/_static/file.png +0 -0
  30. data/docs/_build/html/_static/jquery-3.5.1.js +0 -10872
  31. data/docs/_build/html/_static/jquery.js +0 -2
  32. data/docs/_build/html/_static/language_data.js +0 -297
  33. data/docs/_build/html/_static/minus.png +0 -0
  34. data/docs/_build/html/_static/plus.png +0 -0
  35. data/docs/_build/html/_static/pygments.css +0 -82
  36. data/docs/_build/html/_static/searchtools.js +0 -514
  37. data/docs/_build/html/_static/underscore-1.3.1.js +0 -999
  38. data/docs/_build/html/_static/underscore.js +0 -31
  39. data/docs/_build/html/genindex.html +0 -101
  40. data/docs/_build/html/index.html +0 -117
  41. data/docs/_build/html/objects.inv +0 -6
  42. data/docs/_build/html/overview.html +0 -98
  43. data/docs/_build/html/search.html +0 -110
  44. data/docs/_build/html/searchindex.js +0 -1
  45. data/docs/conf.py +0 -54
  46. data/docs/index.rst +0 -28
  47. data/docs/make.bat +0 -35
  48. data/exe/legion +0 -52
  49. data/legion.gemspec +0 -59
  50. data/lib/legion.rb +0 -21
  51. data/lib/legion/exceptions/handled_task.rb +0 -6
  52. data/lib/legion/exceptions/invalidjson.rb +0 -5
  53. data/lib/legion/exceptions/missingargument.rb +0 -6
  54. data/lib/legion/exceptions/wrongtype.rb +0 -10
  55. data/lib/legion/exceptions/wrongtypes/array.rb +0 -8
  56. data/lib/legion/exceptions/wrongtypes/hash.rb +0 -8
  57. data/lib/legion/exceptions/wrongtypes/integer.rb +0 -8
  58. data/lib/legion/exceptions/wrongtypes/string.rb +0 -8
  59. data/lib/legion/extensions.rb +0 -185
  60. data/lib/legion/extensions/actors/base.rb +0 -49
  61. data/lib/legion/extensions/actors/every.rb +0 -48
  62. data/lib/legion/extensions/actors/loop.rb +0 -32
  63. data/lib/legion/extensions/actors/nothing.rb +0 -15
  64. data/lib/legion/extensions/actors/once.rb +0 -40
  65. data/lib/legion/extensions/actors/poll.rb +0 -88
  66. data/lib/legion/extensions/actors/subscription.rb +0 -138
  67. data/lib/legion/extensions/builders/actors.rb +0 -61
  68. data/lib/legion/extensions/builders/base.rb +0 -36
  69. data/lib/legion/extensions/builders/helpers.rb +0 -24
  70. data/lib/legion/extensions/builders/runners.rb +0 -58
  71. data/lib/legion/extensions/core.rb +0 -126
  72. data/lib/legion/extensions/data.rb +0 -58
  73. data/lib/legion/extensions/data/migrator.rb +0 -28
  74. data/lib/legion/extensions/data/model.rb +0 -8
  75. data/lib/legion/extensions/helpers/base.rb +0 -82
  76. data/lib/legion/extensions/helpers/cache.rb +0 -23
  77. data/lib/legion/extensions/helpers/core.rb +0 -41
  78. data/lib/legion/extensions/helpers/data.rb +0 -23
  79. data/lib/legion/extensions/helpers/lex.rb +0 -48
  80. data/lib/legion/extensions/helpers/logger.rb +0 -47
  81. data/lib/legion/extensions/helpers/task.rb +0 -60
  82. data/lib/legion/extensions/helpers/transport.rb +0 -44
  83. data/lib/legion/extensions/transport.rb +0 -159
  84. data/lib/legion/process.rb +0 -124
  85. data/lib/legion/runner.rb +0 -55
  86. data/lib/legion/runner/log.rb +0 -10
  87. data/lib/legion/runner/status.rb +0 -69
  88. data/lib/legion/service.rb +0 -99
  89. data/lib/legion/supervision.rb +0 -15
  90. data/lib/legion/version.rb +0 -3
data/Rakefile DELETED
@@ -1,38 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'bundler/gem_tasks'
4
- require 'rspec/core/rake_task'
5
-
6
- RSpec::Core::RakeTask.new(:spec)
7
-
8
- task default: :spec
9
-
10
- task test: :rubocop
11
- task test: :spec
12
- task test: :start
13
-
14
- task :rubocop do
15
- sh 'rubocop'
16
- end
17
-
18
- task :start do
19
- sh 'bin/legion start -d'
20
- sh 'bin/legion stop'
21
- end
22
-
23
- namespace :deploy do
24
- require 'legion/version'
25
- desc 'Deploy alpha/test'
26
- task :test do
27
- Gem.yank_gem('legion', "#{Legion::VERSION}a")
28
- puts Gem.query('legion-transport').inspect
29
- puts Gem.methods(false)
30
- puts Legion::VERSION
31
- end
32
-
33
- task :staging do
34
- end
35
-
36
- task :production do
37
- end
38
- end
@@ -1,16 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
-
4
- require 'bundler/setup'
5
- require 'legion'
6
- Legion::Service.new
7
-
8
- # You can add fixtures and/or initialization code here to make experimenting
9
- # with your gem easier. You can also use a different console, if you like.
10
-
11
- # (If you use this, don't forget to add pry to your Gemfile!)
12
- require 'pry'
13
- Pry.start
14
-
15
- require 'irb'
16
- IRB.start(__FILE__)
data/bin/legion DELETED
@@ -1,49 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
-
4
- require 'optparse'
5
- require 'etc'
6
-
7
- @children = []
8
- children = 5
9
- if children == 1
10
- require 'legion'
11
- require 'legion/process'
12
- Legion.start
13
- Legion::Process.new(options).run!
14
- else
15
- children.times do
16
- @children.push(
17
- Process.fork do
18
- require 'legion'
19
- require 'legion/process'
20
-
21
- Legion.start
22
- sleep(1)
23
- Legion::Process.new(options).run!
24
- end
25
- )
26
- sleep(5)
27
- end
28
-
29
- @quit = false
30
- trap('SIGINT') do
31
- @quit = true
32
- @children.each do |child|
33
- Process.kill('SIGINT', child)
34
- end
35
- sleep(0.5)
36
- end
37
-
38
- trap('SIGTERM') do
39
- @children.each do |child|
40
- Process.kill('SIGTERM', child)
41
- end
42
-
43
- sleep(1)
44
- end
45
-
46
- sleep(1) until @quit
47
- end
48
-
49
- sleep(2)
data/bin/setup DELETED
@@ -1,8 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
3
- IFS=$'\n\t'
4
- set -vx
5
-
6
- bundle install
7
-
8
- # Do any other automated setup that you need to do here
data/bin/test DELETED
@@ -1,32 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
- # rubocop:disable all
4
- require 'cli-tree'
5
- # require File.expand_path('lib/legion.rb')
6
- # Legion.setup
7
- require 'legion/json'
8
- require 'legion/logging'
9
- require 'legion/settings'
10
- require 'legion/data'
11
- Legion::Logging.setup(level: 'debug')
12
- Legion::Settings.load
13
- Legion::Settings.merge_settings('data', Legion::Data::Settings.default)
14
- Legion::Data.setup
15
- extensions = {name: 'extensions', children: []}
16
- Legion::Data::Model::Extension.each do | extension|
17
- runners = []
18
- extension.runners.each do |runner|
19
- functions = []
20
- runner.functions.each do |function|
21
- functions.push function.values[:name]
22
- end
23
- # runners.push runner.values[:name]
24
- runners.push({name: runner.values[:name], children: functions})
25
- end
26
- child = {name: extension.values[:name], children: runners}
27
- # extensions[:children].push extension.values[:name]
28
- extensions[:children].push child
29
- end
30
-
31
- tree = TreeNode.from_h(extensions)
32
- tree.print
@@ -1,55 +0,0 @@
1
- image: ruby:2.5.0
2
-
3
- pipelines:
4
- tags:
5
- '0.1.0':
6
- - step:
7
- caches:
8
- - bundler
9
- deployment: rubygems
10
- script:
11
- - mkdir -p ~/.gem/credentials
12
- - (umask 077 ; echo $gem_creds | base64 --decode > ~/.gem/credentials)
13
- - gem build legion.gemspec
14
- - gem push legionio-*.gem
15
- branches:
16
- master:
17
- - step:
18
- caches:
19
- - bundler
20
- script:
21
- - gem install bundle rubocop
22
- - bundle install
23
- - rubocop
24
- - rake
25
- services:
26
- - mysql
27
- - broker
28
- default:
29
- - step:
30
- caches:
31
- - bundler
32
- script:
33
- - gem install bundle rubocop
34
- - bundle install
35
- - rubocop
36
- - rake
37
- services:
38
- - mysql
39
- - broker
40
- definitions:
41
- caches:
42
- bundler: vendor/bundle
43
- services:
44
- mysql:
45
- image: mysql:5.7
46
- environment:
47
- MYSQL_DATABASE: 'legion'
48
- MYSQL_ROOT_PASSWORD: 'legion'
49
- MYSQL_USER: 'legion'
50
- MYSQL_PASSWORD: 'legion'
51
- broker:
52
- image: rabbitmq:3
53
- environment:
54
- RABBITMQ_DEFAULT_USER: guest
55
- RABBITMQ_DEFAULT_PASS: guest
@@ -1,20 +0,0 @@
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)
@@ -1,4 +0,0 @@
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
@@ -1,28 +0,0 @@
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
@@ -1,701 +0,0 @@
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
- }