242 Commits

Author SHA1 Message Date
c7e2f8609c Merge pull request '2022.10.3 - Removed duplicated schematic name in generate command #92' (#111) from 2022.10.3 into 2022.10
Reviewed-on: #111
Closes #92
2022-09-17 12:12:52 +02:00
9d2321cc9c Merge branch '2022.10' into 2022.10.3 2022-09-17 12:12:40 +02:00
61d9912950 Removed duplicated schematic name in generate command #92 2022-09-17 12:09:05 +02:00
f23d32a92a Merge pull request '2022.10.4 - Removed async from startup functions (#94)' (#110) from 2022.10.4 into 2022.10
Reviewed-on: #110
Closes #94
2022-09-17 11:59:38 +02:00
dc489cbf7a Removed async from startup functions 2022-09-17 11:58:43 +02:00
41d24aae99 Merge pull request '2022.10.6 - Added error message when logging configuration not exists (#95)' (#109) from 2022.10.6 into 2022.10
Reviewed-on: #109
Closes #95
2022-09-17 11:40:46 +02:00
6b50bba139 Merge branch '2022.10' into 2022.10.6 2022-09-17 11:40:30 +02:00
139422fd32 Added error message when logging configuration not exists 2022-09-17 11:39:19 +02:00
409e11df42 Merge pull request '2022.10.5 Improved version command & fixed unittests (#97)' (#107) from 2022.10.5 into 2022.10
Reviewed-on: #107
Closes #97
2022-09-16 10:43:17 +02:00
f3a11f9791 Improved version command & fixed unittests 2022-09-15 19:16:52 +02:00
8dcc5b4011 Merge pull request '2022.10.9 - Enumerable & List (#105)' (#106) from 2022.10.9 into 2022.10
Reviewed-on: #106
Closes #105
2022-09-15 18:21:25 +02:00
d0f65834f1 Added performance test case 2022-09-15 18:14:40 +02:00
47ed0a705d Improved query 2022-09-15 17:00:22 +02:00
ae3192b63c Removed SequenceABC 2022-09-15 12:48:05 +02:00
bb461f5fba Improved query 2022-09-15 00:30:44 +02:00
52069b7bb3 Improved Sequences 2022-09-14 23:01:52 +02:00
f0ed0bd2e1 Added sequence converters 2022-09-14 13:23:23 +02:00
e868a120f0 Build cpl-query 2022-09-13 19:38:16 +02:00
70652aeb4c Changed structure of cpl-query 2022-09-13 19:33:26 +02:00
28adcc4e49 Implemented enumerable 2022-09-13 12:07:04 +02:00
affbb1ee7b Merge pull request '2022.10.8 - Moved query functions to static query class (#102)' (#104) from 2022.10.8 into 2022.10
Reviewed-on: #104
Closes #102
2022-09-12 22:55:14 +02:00
d8a4210c9b Moved query functions to static query class 2022-09-12 22:53:52 +02:00
b16d555e33 Merge pull request '2022.10.2 - Code refactoring' (#103) from 2022.10.2 into 2022.10
Reviewed-on: #103
2022-09-12 22:31:04 +02:00
4380142ccd Merge branch '2022.10' into 2022.10.2 2022-09-12 22:30:41 +02:00
91f2d6cb21 Code refactoring 2022-09-12 22:29:46 +02:00
249b071ee9 Merge pull request '2022.10.2' (#101) from 2022.10.2 into 2022.10
Reviewed-on: #101
2022-09-12 22:29:22 +02:00
53fe437100 Added more data containers 2022-09-12 22:18:54 +02:00
fc63f3616e Added tests for select & select many 2022-09-12 18:07:37 +02:00
a528511732 Added tests for select & select many 2022-09-12 17:58:48 +02:00
dbe1d37046 Build version 2022-09-11 22:02:10 +02:00
988965ed52 Improved cpl-query & added first types from discord 2022-09-11 21:57:27 +02:00
3c5ca594d5 Merge pull request '2022.10.1' (#100) from 2022.10.1 into 2022.10
Reviewed-on: #100
2022-09-11 19:30:39 +02:00
452b30c899 Build version 2022-09-11 19:30:19 +02:00
85c5b26fdf Added slash command support 2022-09-11 10:21:28 +02:00
92ed684866 First migrations 2022-09-10 10:27:31 +02:00
88e83db330 Improved scope handling 2022-07-31 13:32:02 +02:00
55609fc691 Renamed sh_cpl to cpl in docs 2022-07-31 11:33:45 +02:00
e0d89f967f Improved docs 2022-07-31 11:30:05 +02:00
b2ce8a6924 Added on_error to event types enum 2022-07-19 21:42:45 +02:00
71efbd1b42 Fixed database connection handling by reconnecting 2022-07-19 07:37:03 +02:00
e36939a108 Fixed database port handling 2022-07-18 12:15:28 +02:00
721461fc1b Deployed cpl-discord==2022.7.0.post2 2022-07-17 16:11:33 +02:00
72ee59b2b4 Deployed cpl-core==2022.7.0.post3 2022-07-17 15:52:53 +02:00
95159da0fc Fixed pynput imports 2022-07-17 15:52:17 +02:00
330d702347 Fixed base class of translation service 2022-07-17 15:49:50 +02:00
cbf669d3bd Fixed base class of translation service 2022-07-16 22:06:38 +02:00
7498fe3255 Fixed settings error 2022-07-16 19:37:40 +02:00
880998e8ca Published cpl-discord.post1 2022-07-16 19:23:00 +02:00
ecc9657eaa Merge pull request '2022.7 - cpl-discord' (#96) from 2022.7 into master
Reviewed-on: #96
Closes #91
2022-07-16 16:16:49 +02:00
125f65cf1b Published cpl-discord 2022-07-16 16:15:52 +02:00
1cd9c7d669 Fixed set-version 2022-07-16 16:07:39 +02:00
5165f31066 Build cpl-discord 2022-07-16 15:53:02 +02:00
10d33e5d1d Added logic to handle commands 2022-07-16 15:45:34 +02:00
fb35e8b8b2 Added logic to create a bot 2022-07-16 14:53:54 +02:00
4402bcce73 Added test project 2022-07-16 12:22:10 +02:00
8839b26f00 Added event bases 2022-07-16 12:21:59 +02:00
a79358725c Added cpl-discord project 2022-07-16 12:12:52 +02:00
2ab1576230 Fixed async init error & Fixed pip install 2022-07-14 16:29:08 +02:00
c0be380f69 Removed vscode files 2022-07-14 15:22:10 +02:00
c0ae0c8389 Merge pull request '2022.7 - cpl-translation' (#90) from 2022.7 into master
Reviewed-on: #90
Closes #89
Closes #63
Closes #62
2022-07-10 18:10:30 +02:00
4a766e8284 Release 2022.7 2022-07-10 18:08:44 +02:00
2772ea8df2 Added translation unittests 2022-07-10 17:56:38 +02:00
a604f0e821 Build package 2022-07-10 17:23:50 +02:00
6995b25518 Injected add_translation function from translation package 2022-07-10 17:17:45 +02:00
e4f843829f Added logic to load translations and to translate texts 2022-06-29 20:03:13 +02:00
39b6ca790c Added test project 2022-06-29 19:05:12 +02:00
4c8d7a8031 Added translation project 2022-06-29 19:04:01 +02:00
6d75bc433e Merge pull request '2022.6' (#88) from 2022.6 into master
Reviewed-on: #88
2022-06-29 17:50:06 +02:00
8bb7fbd1c4 Merge remote-tracking branch 'origin/2022.6' into 2022.6 2022-06-29 17:47:04 +02:00
ad03e655e9 Build Release 2022.6.0 2022-06-29 17:46:59 +02:00
61d3974a47 Build Release 2022.6.0 2022-06-29 17:46:01 +02:00
3d852c87e2 Improved docs 2022-06-29 17:44:10 +02:00
0e46528f32 Merge pull request '2022.6.8 - Dokumentation' (#87) from 2022.6.8 into 2022.6
Reviewed-on: #87
Closes #56
2022-06-29 17:42:33 +02:00
bb8fa1f6a8 Improved readme 2022-06-29 17:40:05 +02:00
9fdaa810c0 Build 2022.6.0rc2 2022-06-27 21:48:15 +02:00
4083ac0c14 Build docs and added tutorial files 2022-06-27 21:42:34 +02:00
b9e0b7ccd0 Build 2022.6.0.rc1 2022-06-27 20:55:44 +02:00
4b9e428abb Updated tools 2022-06-27 20:52:27 +02:00
63ad13e09a Improved version handling of set-version 2022-06-27 20:46:01 +02:00
cc06a308a1 Merge pull request '2022.6.10 - Dev dependencies' (#86) from 2022.6.10 into 2022.6
Reviewed-on: #86
Closes #71
2022-06-27 20:18:24 +02:00
e9fdd20181 Updated unittests 2022-06-27 20:16:37 +02:00
8692686cb5 Added dev-deps support to new command 2022-06-27 20:07:52 +02:00
db29ad36fe Added dev-deps support to cpl install without package 2022-06-27 20:05:34 +02:00
0710b25317 Added dev-dependencies to uninstall command 2022-06-27 20:04:19 +02:00
cbd2964f42 Added dev-dependencies to install command 2022-06-27 20:02:01 +02:00
f51118f13c Merge pull request '2022.6.2 - Venv support' (#85) from 2022.6.2 into 2022.6
Reviewed-on: #85
Closes #51
2022-06-27 11:52:17 +02:00
323e363b42 Improved venv support to all related commands 2022-06-27 11:50:22 +02:00
e8a4fe6142 Added venv support to install command 2022-06-27 10:52:26 +02:00
587d9b359c Merge pull request '2022.6.17 - Unittests' (#84) from 2022.6.17 into 2022.6
Reviewed-on: #84
2022-06-27 10:03:54 +02:00
c2632253ac Added tests for update command 2022-06-27 09:10:21 +02:00
45be77dd10 Added tests for version command 2022-06-26 19:51:18 +02:00
78ffbcc33d Readded all test cases 2022-06-26 01:07:10 +02:00
d83d1a244e Fixed for start command [WIP] output is needed 2022-06-26 01:05:45 +02:00
fa002a50ac Fixed for start command 2022-06-26 00:41:25 +02:00
32507afae9 Added tests for start command 2022-06-26 00:39:16 +02:00
6de3bbdaf4 Added tests for run command 2022-06-26 00:15:05 +02:00
6e50d0cb22 Added tests for publish command 2022-06-23 23:47:29 +02:00
9e978f3ece Fixed tests for un/install commands 2022-06-23 23:39:41 +02:00
32478926c8 Added tests for build command 2022-06-23 21:49:44 +02:00
2925788d01 Added tests for uninstall command 2022-06-21 09:24:56 +02:00
c0789cf4f7 Added tests for install command 2022-06-21 08:56:26 +02:00
89d591ce0a Added project reference handling in cpl remove 2022-06-04 00:36:31 +02:00
77c560b40c Improved cpl remove test 2022-06-03 23:46:03 +02:00
dad4913bcd Added cpl remove test 2022-06-03 23:44:26 +02:00
9b56650d4b Added cpl add test 2022-06-03 23:35:07 +02:00
9fca2018e5 Build dev10 2022-05-27 18:57:12 +02:00
e5dd890931 Improved unittest for cpl new & Fixed subdirectory handling with cpl new 2022-05-27 18:57:00 +02:00
beadbf8e91 Improved set-version to ignore skipped deps 2022-05-27 18:26:32 +02:00
ff5f9b833d Improved unittest for cpl new 2022-05-27 18:07:12 +02:00
162f06001a Build dev8 & improved cpl new unittests 2022-05-26 23:27:32 +02:00
348fad24c7 Build dev8 & improved set-version change handling 2022-05-26 23:27:20 +02:00
f9748cdb76 Improved gitignore 2022-05-26 23:03:18 +02:00
56380763a9 Improved unittests 2022-05-26 23:01:50 +02:00
3a1630b687 Added force option to set-version 2022-05-26 23:01:23 +02:00
a593f34cde Build dev7 2022-05-26 23:00:55 +02:00
49cce5fa1a Extended cpl new options 2022-05-26 22:52:03 +02:00
df7bd06629 Fixed additional argument & flag bug 2022-05-26 22:51:29 +02:00
e0da77fd4b Added new test condition for cpl new 2022-05-26 22:24:19 +02:00
833dd83008 Improved unittests & added tests for cpl new 2022-05-26 22:21:16 +02:00
ce0ad4013f [WIP] Improved unittest 2022-05-26 21:42:43 +02:00
698f80adfe Build dev6 2022-05-26 21:42:28 +02:00
d0b0f4bfcb Fixed set-version 2022-05-26 21:41:42 +02:00
d23ea86ccf Added logic to answer questions of new command dialog by flag arguments 2022-05-26 21:18:57 +02:00
15d938b172 Fixed handing of unregistered console arguments 2022-05-26 21:01:41 +02:00
6c1d7a3b29 Removed prints from CLITestSuite 2022-05-26 16:29:07 +02:00
c28f551682 Added skip message to set-version 2022-05-26 16:26:55 +02:00
def92c78c8 Added logic to change version only for projects with changes 2022-05-26 16:25:15 +02:00
ddff9dec11 Fixed install command 2022-05-26 16:08:37 +02:00
9e0e85d646 Fixed install command 2022-05-26 16:06:56 +02:00
b05ca7e980 Set dev version 2022-05-26 16:03:14 +02:00
8f8a9f7dd7 Moved query unittests 2022-05-26 15:53:23 +02:00
df32978a31 Moved unittests 2022-05-26 15:49:52 +02:00
79b51cf8c5 Build dev4 & added unittest support to console 2022-05-26 15:41:47 +02:00
a72dd0dc2e Improved tests 2022-05-26 15:29:49 +02:00
d937c4c0e6 Added tests for generate command 2022-05-26 14:47:36 +02:00
46cceb0910 Registered CLI test cases 2022-05-26 13:59:46 +02:00
e74e39c189 Added CLI command test cases 2022-05-26 13:49:31 +02:00
c2706c7737 Added unittest projects 2022-05-26 13:37:15 +02:00
d0e66d24bd Added logic to generate test cases 2022-05-26 13:17:58 +02:00
c1a1849ad2 Added logic to create new unittest project 2022-05-26 13:12:35 +02:00
0675105731 Merge pull request '2022.6.16 - Build-Tools' (#83) from 2022.6.16 into 2022.6
Reviewed-on: #83
Closes #82
2022-05-26 12:13:45 +02:00
7ee0b951a8 Rebuild & improved workspace scripts 2022-05-25 19:59:38 +02:00
d8168f024c Added logic to write PipPath & build dev2 2022-05-25 19:53:05 +02:00
2654dc7c69 Merge remote-tracking branch 'origin/2022.6.16' into 2022.6.16 2022-05-25 19:38:56 +02:00
4224960837 First dev build 2022-05-25 19:38:49 +02:00
907c3a8fff First dev build 2022-05-25 19:38:38 +02:00
28505479ba Added new project 2022-05-25 19:30:11 +02:00
84d3abce3f Merge pull request '2022.6.15 - set-version' (#81) from 2022.6.15 into 2022.6
Reviewed-on: #81
Closes #80
2022-05-25 19:10:35 +02:00
9050dffc53 Renamed projects && build dev6 2022-05-25 19:07:29 +02:00
e0f69c9bdf Fixed old naming of cpl_core 2022-05-25 18:56:08 +02:00
bbd0a60f98 Added functionality to set dependencies for all projects in workspace 2022-05-25 18:54:21 +02:00
e23f4187fe Added logic to add internal pipes in ServiceCollection 2022-05-25 18:42:47 +02:00
15f200df3a Added version pipe 2022-05-25 18:40:01 +02:00
a1a3ad6fb5 Build dev4 2022-05-25 17:09:31 +02:00
d6677d53a3 Added empty lines to generate output 2022-05-25 17:08:03 +02:00
07e43b50d1 Fixed generate pipe argument 2022-05-25 17:07:22 +02:00
ac83555b24 Added logic to handle cpl deps 2022-05-25 17:04:18 +02:00
1ab358059c Added more pre-build scripts 2022-05-25 16:57:21 +02:00
5bf83c0d77 Build dev2 2022-05-25 16:56:24 +02:00
03ac00c6e3 Bugfixes for set-version & CustomScriptService 2022-05-25 16:51:52 +02:00
0122d8fc78 Merge remote-tracking branch 'origin/2022.6.15' into 2022.6.15 2022-05-25 16:43:52 +02:00
a66ce96dbf Added set-version logic && Fixed CustomScriptService to handle arguments 2022-05-25 16:43:43 +02:00
6da8e30446 Added set-version logic && Fixed CustomScriptService to handle arguments 2022-05-25 16:43:28 +02:00
539ed13be4 Bugfixes for run service 2022-05-25 16:06:44 +02:00
036a553f64 Dev build 2022.6.15.dev1 2022-05-25 15:12:36 +02:00
976a14584b Dev build 2022.6.15.dev1 2022-05-25 15:12:30 +02:00
ed69f52927 Fixed generate service 2022-05-25 15:11:42 +02:00
98847495e6 Merge pull request '2022.6.14 - Pre & Post build scripts' (#79) from 2022.6.14 into 2022.6
Reviewed-on: #79
Closes #77
2022-05-25 14:15:24 +02:00
40f132da33 Added workspace scripts 2022-05-25 14:14:26 +02:00
5feb44595a Fixed cpl run command 2022-05-25 14:00:38 +02:00
48c6941f1a Added run command & tools/set-version project 2022-05-25 13:43:16 +02:00
a8756d493a Fixed error with RemoveService 2022-05-25 13:19:12 +02:00
9f4077a073 Improved configuration 2022-05-25 13:11:41 +02:00
3e7a3d75c5 Merge pull request 'cpl@2022.6.13 - cpl run command' (#78) from 2022.6.13 into 2022.6
Reviewed-on: #78
Closes #76
2022-05-25 08:42:41 +02:00
477d2d87d3 Added run command 2022-05-25 08:41:35 +02:00
7a65dbe39b Readded logic to handle pre and post scripts from workspace 2022-05-24 22:28:38 +02:00
f83755ac77 Removed console output & build new dev version 2022-05-24 20:20:42 +02:00
a590cfd066 Bugfixes for start service 2022-05-24 20:12:59 +02:00
f317035342 Bugfixes for test application & added validators to cli 2022-05-24 19:20:55 +02:00
8900bdd446 Removed invalid import && build for rc1 2022-05-24 18:20:31 +02:00
35ecf158a2 Fixed loading by base_type 2022-05-24 18:13:39 +02:00
353c1d30ec Merge pull request '2022.6.9 - Singleton initialisierung' (#75) from 2022.6.9 into 2022.6
Reviewed-on: #75
Closes #70
2022-05-24 17:52:13 +02:00
1c94fb5bd1 Added logic to load singletons when requested not when registered 2022-05-24 17:51:17 +02:00
cf305aeebb Merge pull request '2022.6.12 - Alle Umgebungsvariablen' (#74) from 2022.6.12 into 2022.6
Reviewed-on: #74
Closes #73
2022-05-24 17:39:20 +02:00
90e97433e0 Added logic to load all environment variables by prefix 2022-05-24 17:37:31 +02:00
125a85a0af Merge pull request '2022.6.7 - Pipes' (#69) from 2022.6.7 into 2022.6
Reviewed-on: #69
Closes #60
2022-05-22 20:28:46 +02:00
cfb8838c73 Added default pipes 2022-05-22 20:27:58 +02:00
824d491ebc Dev build projects 2022-05-22 18:49:31 +02:00
d694c408c0 Added CLI logic to generate pipes 2022-05-22 18:48:33 +02:00
d1bb266d49 Added Pipes 2022-05-22 18:43:10 +02:00
419fcc3d29 Merge pull request '2022.6.5 - CLI Erweiterung' (#68) from 2022.6.5 into 2022.6
Reviewed-on: #68
Closes #54
2022-05-22 18:34:44 +02:00
24ab6a51c1 Refactored executable arguments 2022-05-22 18:33:07 +02:00
dec4a45d98 Added logic to add CLI commands from external packages 2022-05-22 18:32:34 +02:00
d11c56db03 Merge pull request 'cpl@2022.6.3 - Verbesserung der Parameter' (#67) from 2022.6.3 into 2022.6
Reviewed-on: #67
2022-05-22 17:38:21 +02:00
fc23315cc7 Build version 2022.6.3 2022-05-22 17:35:38 +02:00
1f503fe20d Build new version 2022-05-20 10:37:43 +02:00
4564f7ac0e Improved output & imports 2022-05-20 10:35:47 +02:00
7b823e1141 Added validator generation 2022-05-20 10:34:09 +02:00
dac3d9c6bb Added validators (closes #59) 2022-05-20 10:27:55 +02:00
ccca904cb8 Smaller output fixes 2022-05-20 09:17:51 +02:00
c66a81c0ec Dev build & migrated custom scripts 2022-05-20 09:12:28 +02:00
fb810e2943 Dev build & migrated custom scripts & add logic to prevent next executable 2022-05-20 09:10:29 +02:00
5cc663dedc Migrated generate command 2022-05-20 08:50:50 +02:00
593372699b BUild dev version 2022-05-20 08:44:32 +02:00
1899cb5b86 Added scripts to workspace 2022-05-19 20:49:48 +02:00
0a285f2d28 Improved help command 2022-05-19 20:23:21 +02:00
94c82e6701 Improved help command 2022-05-19 20:21:46 +02:00
0d37c86061 Removed console output 2022-05-19 20:05:22 +02:00
6c8e9ccd89 Migrated StartService to new argument parsing 2022-05-19 20:04:29 +02:00
e7cf545502 Migrated NewService to new argument parsing 2022-05-19 19:52:36 +02:00
44182eec86 Fixed value handling for variable arguments 2022-05-19 19:41:02 +02:00
0f5b1b7586 Improved argument handling 2022-05-19 19:37:32 +02:00
4fe073580a Migrated first commands to new argument parser 2022-05-19 18:12:47 +02:00
2fed654c16 Improved argument handling 2022-05-19 18:09:25 +02:00
8ebd4864d3 Improved & added commands 2022-05-19 08:25:32 +02:00
a495532a4d Removed console debug outputs 2022-05-18 22:29:44 +02:00
d87ce72f07 Improved argument parsing 2022-05-18 22:26:11 +02:00
50201346e2 Added functions to define console arguments 2022-05-18 18:21:05 +02:00
773b154371 Improved service collection 2022-05-18 18:20:25 +02:00
5b59d1d384 Merge pull request '2022.6.4' (#58) from 2022.6.4 into 2022.6
Reviewed-on: #58
2022-04-30 18:33:54 +02:00
dcd8583183 Build packages 2022-04-30 17:44:15 +02:00
97e52b39c0 Added logic to handle StartupExtension classes 2022-04-30 17:43:34 +02:00
581013b61a Merge pull request '2022.6.1' (#57) from 2022.6.1 into 2022.6
Reviewed-on: #57
2022-04-30 17:16:49 +02:00
fd68d25a1d Updated to python3.10 2022-04-30 17:15:26 +02:00
588f93f7b1 Updated packages 2022-04-30 16:41:52 +02:00
96f402dcdd Updated packages 2022-04-30 16:33:30 +02:00
c1b7fca8d5 Moved from pyfiglet to art 2022-01-19 22:06:59 +01:00
2e4e7ccc57 Fixed minor issues with console & updated packages 2022-01-19 15:06:26 +01:00
ada3d133df Changed exit() to sys.exit() 2022-01-19 12:44:23 +01:00
61e7b9d684 Fixed cpl new command 2022-01-15 23:28:22 +01:00
24172c658c Fixed cpl new command 2022-01-15 22:16:17 +01:00
62ac976b99 Fixed where query typing 2022-01-15 11:11:14 +01:00
1f445a99b2 Fixed typing in count function of cpl_query 2022-01-08 18:09:03 +01:00
025286052b Fixed typing in service collection abc 2022-01-08 17:58:22 +01:00
32a856f8e8 Published new version 2021-12-07 16:07:21 +01:00
21f50f3b24 Fixed table_abc 2021-12-07 16:06:20 +01:00
ce77d41246 Build new docs 2021-12-02 08:20:38 +01:00
dec137220c Improved TableABC 2021-11-30 17:48:08 +01:00
01c7e155c3 Fixed typo 2021-11-30 15:24:01 +01:00
dcbcb67ce8 Fixed db connection 2021-11-30 15:01:28 +01:00
d57fd10718 Fixed add_db_context function 2021-11-30 14:14:34 +01:00
2b91db5d81 Removed unsued parameter 2021-11-30 14:05:52 +01:00
534 changed files with 15224 additions and 5212 deletions

4
.gitignore vendored
View File

@@ -106,6 +106,7 @@ celerybeat.pid
.venv .venv
env/ env/
venv/ venv/
venv_*/
ENV/ ENV/
env.bak/ env.bak/
venv.bak/ venv.bak/
@@ -134,3 +135,6 @@ dmypy.json
# IDE # IDE
.idea/ .idea/
PythonImportHelper-v2-Completion.json PythonImportHelper-v2-Completion.json
# cpl unittest stuff
unittests/test_*_playground

307
.vscode/launch.json vendored
View File

@@ -1,307 +0,0 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Python: Aktuelle Datei",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal"
},
{
"name": "CPL: main test",
"type": "python",
"request": "launch",
"cwd": "${workspaceFolder}/cpl_core/src/tests/custom/general/src/general",
"program": "main.py",
"console": "integratedTerminal",
"args": [
"--customer=sh-edraft.de"
],
"env": {
"CPL_NAME": "CPL_Dev_Test",
"PYTHON_ENVIRONMENT": "development"
}
},
{
"name": "CPL: console test",
"type": "python",
"request": "launch",
"cwd": "${workspaceFolder}/src/tests/custom/console",
"program": "main.py",
"console": "integratedTerminal",
},
{
"name": "CPL: database test",
"type": "python",
"request": "launch",
"cwd": "${workspaceFolder}/src/tests/custom/database/src",
"program": "main.py",
"console": "integratedTerminal",
"env": {
"PYTHON_ENVIRONMENT": "development",
"PYTHONPATH": "${workspaceFolder}/src/:$PYTHONPATH"
}
},
{
"name": "CLI",
"type": "python",
"request": "launch",
"cwd": "${workspaceFolder}/",
"program": "${workspaceFolder}/src/cpl_cli/main.py",
"console": "integratedTerminal",
"args": []
},
{
"name": "CLI: add",
"type": "python",
"request": "launch",
"cwd": "${workspaceFolder}/src/tests/custom/general",
"program": "${workspaceFolder}/src/cpl_cli/main.py",
"console": "integratedTerminal",
"args": [
"add",
"testing",
"general",
]
},
{
"name": "CLI: remove",
"type": "python",
"request": "launch",
"cwd": "${workspaceFolder}/src/tests/custom/general",
"program": "${workspaceFolder}/src/cpl_cli/main.py",
"console": "integratedTerminal",
"args": [
"remove",
"testing",
]
},
{
"name": "CLI: build",
"type": "python",
"request": "launch",
"cwd": "${workspaceFolder}",
"program": "${workspaceFolder}/src/cpl_cli/main.py",
"console": "integratedTerminal",
"args": [
"build"
]
},
{
"name": "CLI: generate abc",
"type": "python",
"request": "launch",
"cwd": "${workspaceFolder}",
"program": "${workspaceFolder}/src/cpl_cli/main.py",
"console": "integratedTerminal",
"args": [
"generate",
"a",
"testName"
]
},
{
"name": "CLI: generate class",
"type": "python",
"request": "launch",
"cwd": "${workspaceFolder}",
"program": "${workspaceFolder}/src/cpl_cli/main.py",
"console": "integratedTerminal",
"args": [
"generate",
"c",
"src/hfs/fsnfiu/fiush/fisbf/testName"
]
},
{
"name": "CLI: generate enum",
"type": "python",
"request": "launch",
"cwd": "${workspaceFolder}",
"program": "${workspaceFolder}/src/cpl_cli/main.py",
"console": "integratedTerminal",
"args": [
"generate",
"e",
"testName"
]
},
{
"name": "CLI: generate service",
"type": "python",
"request": "launch",
"cwd": "${workspaceFolder}",
"program": "${workspaceFolder}/src/cpl_cli/main.py",
"console": "integratedTerminal",
"args": [
"generate",
"s",
"testName"
]
},
{
"name": "CLI: generate settings",
"type": "python",
"request": "launch",
"cwd": "${workspaceFolder}",
"program": "${workspaceFolder}/src/cpl_cli/main.py",
"console": "integratedTerminal",
"args": [
"generate",
"st",
"testName"
]
},
{
"name": "CLI: generate thread",
"type": "python",
"request": "launch",
"cwd": "${workspaceFolder}",
"program": "${workspaceFolder}/src/cpl_cli/main.py",
"console": "integratedTerminal",
"args": [
"generate",
"t",
"testName"
]
},
{
"name": "CLI: hello-world",
"type": "python",
"request": "launch",
"cwd": "${workspaceFolder}",
"program": "${workspaceFolder}/src/cpl_cli/main.py",
"console": "integratedTerminal",
"args": [
"hello-world",
]
},
{
"name": "CLI: help",
"type": "python",
"request": "launch",
"cwd": "${workspaceFolder}",
"program": "${workspaceFolder}/src/cpl_cli/main.py",
"console": "integratedTerminal",
"args": [
"help",
]
},
{
"name": "CLI: install discord.py",
"type": "python",
"request": "launch",
"cwd": "${workspaceFolder}/src/tests/custom/general",
"program": "${workspaceFolder}/src/cpl_cli/main.py",
"console": "integratedTerminal",
"args": [
"install",
"discord.py",
],
"env": {
"GISMO_ENVIRONMENT": "development",
"PYTHONPATH": "${workspaceFolder}/src/:$PYTHONPATH"
}
},
{
"name": "CLI: install local",
"type": "python",
"request": "launch",
"cwd": "${workspaceFolder}/src/tests/custom/general",
"program": "${workspaceFolder}/src/cpl_cli/main.py",
"console": "integratedTerminal",
"args": [
"install",
]
},
{
"name": "CLI: new console",
"type": "python",
"request": "launch",
"cwd": "${workspaceFolder}",
"program": "${workspaceFolder}/src/cpl_cli/main.py",
"console": "integratedTerminal",
"args": [
"new",
"console",
"HelloWorld"
]
},
{
"name": "CLI: new library",
"type": "python",
"request": "launch",
"cwd": "${workspaceFolder}",
"program": "${workspaceFolder}/src/cpl_cli/main.py",
"console": "integratedTerminal",
"args": [
"new",
"library",
"HelloWorldLib"
]
},
{
"name": "CLI: publish",
"type": "python",
"request": "launch",
"cwd": "${workspaceFolder}",
"program": "${workspaceFolder}/src/cpl_cli/main.py",
"console": "integratedTerminal",
"args": [
"publish",
]
},
{
"name": "CLI: start",
"type": "python",
"request": "launch",
"cwd": "${workspaceFolder}",
"program": "${workspaceFolder}/src/cpl_cli/main.py",
"console": "integratedTerminal",
"args": [
"start",
],
"env": {
"PYTHONPATH": "${workspaceFolder}/src/:${workspaceFolder}/src/cpl_cli/"
}
},
{
"name": "CLI: uninstall discord.py",
"type": "python",
"request": "launch",
"cwd": "${workspaceFolder}/src/tests/custom/general",
"program": "${workspaceFolder}/src/cpl_cli/main.py",
"console": "integratedTerminal",
"args": [
"uninstall",
"discord.py",
]
},
{
"name": "CLI: start",
"type": "python",
"request": "launch",
"cwd": "${workspaceFolder}/src/tests/custom/general",
"program": "${workspaceFolder}/src/cpl_cli/main.py",
"console": "integratedTerminal",
"args": [
"update",
]
},
{
"name": "CLI: version",
"type": "python",
"request": "launch",
"cwd": "${workspaceFolder}",
"program": "${workspaceFolder}/src/cpl_cli/main.py",
"console": "integratedTerminal",
"args": [
"version",
]
},
]
}

23
.vscode/settings.json vendored
View File

@@ -1,23 +0,0 @@
{
"workbench.colorCustomizations": {
"activityBar.activeBackground": "#93e6fc",
"activityBar.activeBorder": "#fa45d4",
"activityBar.background": "#93e6fc",
"activityBar.foreground": "#15202b",
"activityBar.inactiveForeground": "#15202b99",
"activityBarBadge.background": "#fa45d4",
"activityBarBadge.foreground": "#15202b",
"sash.hoverBorder": "#93e6fc",
"statusBar.background": "#61dafb",
"statusBar.foreground": "#15202b",
"statusBarItem.hoverBackground": "#2fcefa",
"statusBarItem.remoteBackground": "#61dafb",
"statusBarItem.remoteForeground": "#15202b",
"titleBar.activeBackground": "#61dafb",
"titleBar.activeForeground": "#15202b",
"titleBar.inactiveBackground": "#61dafb99",
"titleBar.inactiveForeground": "#15202b99"
},
"peacock.color": "#61dafb",
"python.pythonPath": "cpl-env/bin/python3.9",
}

View File

@@ -1,4 +1,4 @@
MIT License Copyright (c) 2020 - 2021 sh-edraft.de MIT License Copyright (c) 2020 - 2022 sh-edraft.de
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal

View File

@@ -13,6 +13,7 @@
## Table of Contents ## Table of Contents
<!-- TABLE OF CONTENTS --> <!-- TABLE OF CONTENTS -->
<ol> <ol>
<li><a href="#Features">Features</a></li>
<li> <li>
<a href="#getting-started">Getting Started</a> <a href="#getting-started">Getting Started</a>
<ul> <ul>
@@ -26,6 +27,52 @@
<li><a href="#contact">Contact</a></li> <li><a href="#contact">Contact</a></li>
</ol> </ol>
## Features
<!-- FEATURE OVERVIEW -->
- Expandle
- Application base
- Standardized application classes
- Application object builder
- Application extension classes
- Startup classes
- Startup extension classes
- Configuration
- Configure via object mapped JSON
- Console argument handling
- Console class for in and output
- Banner
- Spinner
- Options (menu)
- Table
- Write
- Write_at
- Write_line
- Write_line_at
- Dependency injection
- Service lifetimes: singleton, scoped and transient
- Providing of application environment
- Environment (development, staging, testing, production)
- Appname
- Customer
- Hostname
- Runtime directory
- Working directory
- Logging
- Standardized logger
- Log-level (FATAL, ERROR, WARN, INFO, DEBUG & TRACE)
- Mail handling
- Send mails
- Pipe classes
- Convert input
- Utils
- Credential manager
- Encryption via BASE64
- PIP wrapper class based on subprocess
- Run pip commands
- String converter to different variants
- to_lower_case
- to_camel_case
- ...
<!-- GETTING STARTED --> <!-- GETTING STARTED -->
## Getting Started ## Getting Started

View File

@@ -1,13 +1,137 @@
{ {
"WorkspaceSettings": { "WorkspaceSettings": {
"DefaultProject": "cpl_cli", "DefaultProject": "cpl-cli",
"Projects": { "Projects": {
"cpl_core": "src/cpl_core/cpl_core.json", "cpl-cli": "src/cpl_cli/cpl-cli.json",
"cpl_cli": "src/cpl_cli/cpl_cli.json", "cpl-core": "src/cpl_core/cpl-core.json",
"cpl_query": "src/cpl_query/cpl_query.json" "cpl-discord": "src/cpl_discord/cpl-discord.json",
"cpl-query": "src/cpl_query/cpl-query.json",
"cpl-translation": "src/cpl_translation/cpl-translation.json",
"set-version": "tools/set_version/set-version.json",
"set-pip-urls": "tools/set_pip_urls/set-pip-urls.json",
"unittests": "unittests/unittests/unittests.json",
"unittests_cli": "unittests/unittests_cli/unittests_cli.json",
"unittests_core": "unittests/unittests_core/unittests_core.json",
"unittests_query": "unittests/unittests_query/unittests_query.json",
"unittests_shared": "unittests/unittests_shared/unittests_shared.json",
"unittests_translation": "unittests/unittests_translation/unittests_translation.json"
}, },
"Scripts": { "Scripts": {
"hello-world": "echo 'Hello World'" "hello-world": "echo 'Hello World'",
"sv": "cpl set-version",
"set-version": "cpl run set-version $ARGS; echo '';",
"spu": "cpl set-pip-urls",
"set-pip-urls": "cpl run set-pip-urls $ARGS; echo '';",
"docs-build": "echo 'Build Documentation'; cd docs/; sphinx-apidoc -o source/ ../src/cpl_core; sphinx-apidoc -o source/ ../src/cpl_query; make clean; make html; rm source/cpl_query.tests.rst;",
"db": "cpl docs-build",
"docs-open": "xdg-open $PWD/docs/build/html/index.html &",
"do": "cpl docs-open",
"test": "cpl run unittests",
"pre-build-all": "cpl sv $ARGS; cpl spu $ARGS;",
"build-all": "cpl build-cli; cpl build-core; cpl build-discord; cpl build-query; cpl build-translation; cpl build-set-pip-urls; cpl build-set-version",
"ba": "cpl build-all $ARGS",
"build-cli": "echo 'Build cpl-cli'; cd ./src/cpl_cli; cpl build; cd ../../;",
"build-core": "echo 'Build cpl-core'; cd ./src/cpl_core; cpl build; cd ../../;",
"build-discord": "echo 'Build cpl-discord'; cd ./src/cpl_discord; cpl build; cd ../../;",
"build-query": "echo 'Build cpl-query'; cd ./src/cpl_query; cpl build; cd ../../;",
"build-translation": "echo 'Build cpl-translation'; cd ./src/cpl_translation; cpl build; cd ../../;",
"build-set-pip-urls": "echo 'Build set-pip-urls'; cd ./tools/set_pip_urls; cpl build; cd ../../;",
"build-set-version": "echo 'Build set-version'; cd ./tools/set_version; cpl build; cd ../../;",
"pre-publish-all": "cpl sv $ARGS; cpl spu $ARGS;",
"publish-all": "cpl publish-cli; cpl publish-core; cpl publish-discord; cpl publish-query; cpl publish-translation;",
"pa": "cpl build-all $ARGS",
"publish-cli": "echo 'Publish cpl-cli'; cd ./src/cpl_cli; cpl publish; cd ../../;",
"publish-core": "echo 'Publish cpl-core'; cd ./src/cpl_core; cpl publish; cd ../../;",
"publish-discord": "echo 'Publish cpl-discord'; cd ./src/cpl_discord; cpl publish; cd ../../;",
"publish-query": "echo 'Publish cpl-query'; cd ./src/cpl_query; cpl publish; cd ../../;",
"publish-translation": "echo 'Publish cpl-translation'; cd ./src/cpl_translation; cpl publish; cd ../../;",
"upload-prod-cli": "echo 'PROD Upload cpl-cli'; cpl upl-prod-cli;",
"upl-prod-cli": "twine upload -r pip.sh-edraft.de dist/cpl-cli/publish/setup/*",
"upload-prod-core": "echo 'PROD Upload cpl-core'; cpl upl-prod-core;",
"upl-prod-core": "twine upload -r pip.sh-edraft.de dist/cpl-core/publish/setup/*",
"upload-prod-discord": "echo 'PROD Upload cpl-discord'; cpl upl-prod-discord;",
"upl-prod-discord": "twine upload -r pip.sh-edraft.de dist/cpl-discord/publish/setup/*",
"upload-prod-query": "echo 'PROD Upload cpl-query'; cpl upl-prod-query;",
"upl-prod-query": "twine upload -r pip.sh-edraft.de dist/cpl-query/publish/setup/*",
"upload-prod-translation": "echo 'PROD Upload cpl-translation'; cpl upl-prod-translation;",
"upl-prod-translation": "twine upload -r pip.sh-edraft.de dist/cpl-translation/publish/setup/*",
"upload-exp-cli": "echo 'EXP Upload cpl-cli'; cpl upl-exp-cli;",
"upl-exp-cli": "twine upload -r pip-exp.sh-edraft.de dist/cpl-cli/publish/setup/*",
"upload-exp-core": "echo 'EXP Upload cpl-core'; cpl upl-exp-core;",
"upl-exp-core": "twine upload -r pip-exp.sh-edraft.de dist/cpl-core/publish/setup/*",
"upload-exp-discord": "echo 'EXP Upload cpl-discord'; cpl upl-exp-discord;",
"upl-exp-discord": "twine upload -r pip-exp.sh-edraft.de dist/cpl-discord/publish/setup/*",
"upload-exp-query": "echo 'EXP Upload cpl-query'; cpl upl-exp-query;",
"upl-exp-query": "twine upload -r pip-exp.sh-edraft.de dist/cpl-query/publish/setup/*",
"upload-exp-translation": "echo 'EXP Upload cpl-translation'; cpl upl-exp-translation;",
"upl-exp-translation": "twine upload -r pip-exp.sh-edraft.de dist/cpl-translation/publish/setup/*",
"upload-dev-cli": "echo 'DEV Upload cpl-cli'; cpl upl-dev-cli;",
"upl-dev-cli": "twine upload -r pip-dev.sh-edraft.de dist/cpl-cli/publish/setup/*",
"upload-dev-core": "echo 'DEV Upload cpl-core'; cpl upl-dev-core;",
"upl-dev-core": "twine upload -r pip-dev.sh-edraft.de dist/cpl-core/publish/setup/*",
"upload-dev-discord": "echo 'DEV Upload cpl-discord'; cpl upl-dev-discord;",
"upl-dev-discord": "twine upload -r pip-dev.sh-edraft.de dist/cpl-discord/publish/setup/*",
"upload-dev-query": "echo 'DEV Upload cpl-query'; cpl upl-dev-query;",
"upl-dev-query": "twine upload -r pip-dev.sh-edraft.de dist/cpl-query/publish/setup/*",
"upload-dev-translation": "echo 'DEV Upload cpl-translation'; cpl upl-dev-translation;",
"upl-dev-translation": "twine upload -r pip-dev.sh-edraft.de dist/cpl-translation/publish/setup/*",
"pre-deploy-prod": "cpl sv $ARGS; cpl spu --environment=production;",
"deploy-prod": "cpl deploy-prod-cli; cpl deploy-prod-core; cpl deploy-prod-discord; cpl deploy-prod-query; cpl deploy-prod-translation;",
"dp": "cpl deploy-prod $ARGS",
"deploy-prod-cli": "cpl publish-cli; cpl upload-prod-cli",
"deploy-prod-core": "cpl publish-core; cpl upload-prod-core",
"deploy-prod-query": "cpl publish-query; cpl upload-prod-query",
"deploy-prod-discord": "cpl publish-discord; cpl upload-prod-discord",
"deploy-prod-translation": "cpl publish-translation; cpl upload-prod-translation",
"pre-deploy-exp": "cpl sv $ARGS; cpl spu --environment=staging;",
"deploy-exp": "cpl deploy-exp-cli; cpl deploy-exp-core; cpl deploy-exp-discord; cpl deploy-exp-query; cpl deploy-exp-translation;",
"de": "cpl deploy-exp $ARGS",
"deploy-exp-cli": "cpl publish-cli; cpl upload-exp-cli",
"deploy-exp-core": "cpl publish-core; cpl upload-exp-core",
"deploy-exp-discord": "cpl publish-discord; cpl upload-exp-discord",
"deploy-exp-query": "cpl publish-query; cpl upload-exp-query",
"deploy-exp-translation": "cpl publish-translation; cpl upload-exp-translation",
"pre-deploy-dev": "cpl sv $ARGS; cpl spu --environment=development;",
"deploy-dev": "cpl deploy-dev-cli; cpl deploy-dev-core; cpl deploy-dev-discord; cpl deploy-dev-query; cpl deploy-dev-translation;",
"dd": "cpl deploy-dev $ARGS",
"deploy-dev-cli": "cpl publish-cli; cpl upload-dev-cli",
"deploy-dev-core": "cpl publish-core; cpl upload-dev-core",
"deploy-dev-discord": "cpl publish-discord; cpl upload-dev-discord",
"deploy-dev-query": "cpl publish-query; cpl upload-dev-query",
"deploy-dev-translation": "cpl publish-query; cpl upload-dev-translation",
"dev-install": "cpl di-core; cpl di-cli; cpl di-query; cpl di-translation;",
"di": "cpl dev-install",
"di-core": "pip install cpl-core --pre --upgrade --extra-index-url https://pip-dev.sh-edraft.de",
"di-cli": "pip install cpl-cli --pre --upgrade --extra-index-url https://pip-dev.sh-edraft.de",
"di-discord": "pip install cpl-discord --pre --upgrade --extra-index-url https://pip-dev.sh-edraft.de",
"di-query": "pip install cpl-query --pre --upgrade --extra-index-url https://pip-dev.sh-edraft.de",
"di-translation": "pip install cpl-translation --pre --upgrade --extra-index-url https://pip-dev.sh-edraft.de"
} }
} }
} }

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
docs/build/doctrees/tutorials.doctree vendored Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1,4 +1,4 @@
# Sphinx build info version 1 # Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
config: e947378348368955f94cb62626664e15 config: 9ea51a00cf3559575c97b7efd7a002e5
tags: 645f666f9bcd5a90fca523b33c5a78b7 tags: 645f666f9bcd5a90fca523b33c5a78b7

View File

@@ -4,6 +4,7 @@
- [Description](#description) - [Description](#description)
- [Arguments](#arguments) - [Arguments](#arguments)
- [Flags](#flags)
Removes a project from workspace. Removes a project from workspace.
@@ -19,7 +20,13 @@ If you call the command in a CPL workspace, you can use the project names. Other
## Arguments ## Arguments
| Argument | Description | Value type | | Argument | Description | Value type |
| ------------------------- |:---------------------------------------------------------------:|:----------------:| |------------------------|:----------------------------------------------------------:|:----------:|
| ```<source-project>``` | Name of the project to which the reference has to be added | ```str``` | ```<source-project>``` | Name of the project to which the reference has to be added | ```str``` |
| ```<target-project>``` | Name of the project to be referenced | ```str``` | ```<target-project>``` | Name of the project to be referenced | ```str``` |
## Flags
| Argument | Description |
|------------------|:------------------------------------------:|
| ```--simulate``` | Specifies whether the command is simulated |

View File

@@ -25,11 +25,14 @@ Generates files based on a schematic.
## Schematics ## Schematics
| Schematic | Description | Arguments | | Schematic | Description | Arguments |
| ----------------- |:-------------------:|:----------------:| |-----------------|:-------------------------------------:|:------------:|
| ```abc``` | Abstract base class | ```<name>``` | ```abc``` | Abstract base class | ```<name>``` |
| ```class``` | Class | ```<name>``` | ```class``` | Class | ```<name>``` |
| ```enum``` | Enum class | ```<name>``` | ```enum``` | Enum class | ```<name>``` |
| ```service``` | Service class | ```<name>``` | ```pipe``` | Pipe class | ```<name>``` |
| ```settings``` | [Configmodel](cpl_core.configuration) | ```<name>``` | ```service``` | Service class | ```<name>``` |
| ```thread``` | Thread class | ```<name>``` | ```settings``` | [Configmodel](cpl_core.configuration) | ```<name>``` |
| ```test``` | Test class | ```<name>``` |
| ```thread``` | Thread class | ```<name>``` |
| ```validator``` | Validator class | ```<name>``` |

View File

@@ -1,9 +1,9 @@
# cpl help # cpl help
<!-- ## Contents ## Contents
- [Description](#description) --> - [Description](#description)
<!-- - [Arguments](#arguments) --> - [Arguments](#arguments)
Lists available command and their short descriptions. Lists available command and their short descriptions.

View File

@@ -18,6 +18,14 @@ Without given package it will install the depedencies of the CPL project your in
## Arguments ## Arguments
| Argument | Description | Value type | | Argument | Description | Value type |
| ----------------- |:-----------------------------:|:-------------:| |-----------------|:----------------------:|:----------:|
| ```<package>``` | The package to install | ```str``` | | ```<package>``` | The package to install | ```str``` |
## Flags
| Argument | Description |
|------------------|:----------------------------------------------------:|
| ```--dev``` | Specifies whether the command is in development mode |
| ```--virtual``` | Specifies whether the command is virtual mode |
| ```--simulate``` | Specifies whether the command is simulated |

View File

@@ -18,14 +18,25 @@ Generates a workspace and initial project or add a project to workspace.
If the command is running in a CPL workspace, it will add the new project to the workspace. If the command is running in a CPL workspace, it will add the new project to the workspace.
| Argument | Description | Value type | | Argument | Description | Value type |
| ----------------- |:-----------------------------------------------------:|:-------------:| |--------------|:----------------------------------------------------:|:----------:|
| ```<type>``` | The type of the project, see [types](#project-types) | ```str``` | | ```<type>``` | The type of the project, see [types](#project-types) | ```str``` |
| ```<name>``` | The name of the project | ```str``` | | ```<name>``` | The name of the project | ```str``` |
## Project types ## Project types
| Project type | Description | | Project type | Description |
| ----------------- |:-----------------------------:| |---------------|:----------------------------:|
| ```console``` | A simple console application | | ```console``` | A simple console application |
| ```library``` | A package | | ```library``` | A package |
## Flags
| Argument | Description |
|---------------------------|:-------------------------------------------:|
| ```--async``` | Specifies whether async is used |
| ```--application-base``` | Specifies whether application base is used |
| ```--startup``` | Specifies whether startup is used |
| ```--service-providing``` | Specifies whether service-providing is used |
| ```--nothing``` | Specifies whether nothing is used |
| ```--venv``` | Specifies whether venv is used |

View File

@@ -19,6 +19,12 @@ If you call the command in a CPL workspace, you can use the project names. Other
## Arguments ## Arguments
| Argument | Description | Value type | | Argument | Description | Value type |
| ------------------------- |:-------------------------------------:|:----------------:| |-----------------|:---------------------------------:|:----------:|
| ```<project>``` | The name of the project to delete | ```str``` | ```<project>``` | The name of the project to delete | ```str``` |
## Flags
| Argument | Description |
|------------------|:----------------------------------------------------:|
| ```--simulate``` | Specifies whether the command is simulated |

View File

@@ -17,6 +17,14 @@ Uninstall given package from project via pip.
## Arguments ## Arguments
| Argument | Description | Value type | | Argument | Description | Value type |
| ----------------- |:-----------------------------:|:-------------:| |-----------------|:------------------------:|:----------:|
| ```<package>``` | The package to uninstall | ```str``` | | ```<package>``` | The package to uninstall | ```str``` |
## Flags
| Argument | Description |
|------------------|:----------------------------------------------------:|
| ```--dev``` | Specifies whether the command is in development mode |
| ```--virtual``` | Specifies whether the command is virtual mode |
| ```--simulate``` | Specifies whether the command is simulated |

View File

@@ -5,3 +5,9 @@ Updates the CPL and project dependencies.
cpl **update** <br> cpl **update** <br>
cpl **u** <br> cpl **u** <br>
cpl **U** cpl **U**
## Flags
| Argument | Description |
|------------------|:----------------------------------------------------:|
| ```--simulate``` | Specifies whether the command is simulated |

View File

@@ -0,0 +1,77 @@
cpl\_core.pipes
=======================
Submodules
----------
cpl\_core.pipes.bool\_pipe module
---------------------------------
.. automodule:: cpl_core.pipes.bool_pipe
:members:
:undoc-members:
:show-inheritance:
cpl\_core.pipes.first\_char\_to\_lower\_pipe module
---------------------------------------------------
.. automodule:: cpl_core.pipes.first_char_to_lower_pipe
:members:
:undoc-members:
:show-inheritance:
cpl\_core.pipes.first\_to\_upper\_pipe module
---------------------------------------------
.. automodule:: cpl_core.pipes.first_to_upper_pipe
:members:
:undoc-members:
:show-inheritance:
cpl\_core.pipes.ip\_address\_pipe module
----------------------------------------
.. automodule:: cpl_core.pipes.ip_address_pipe
:members:
:undoc-members:
:show-inheritance:
cpl\_core.pipes.pipe\_abc module
--------------------------------
.. automodule:: cpl_core.pipes.pipe_abc
:members:
:undoc-members:
:show-inheritance:
cpl\_core.pipes.to\_camel\_case\_pipe module
--------------------------------------------
.. automodule:: cpl_core.pipes.to_camel_case_pipe
:members:
:undoc-members:
:show-inheritance:
cpl\_core.pipes.to\_snake\_case\_pipe module
--------------------------------------------
.. automodule:: cpl_core.pipes.to_snake_case_pipe
:members:
:undoc-members:
:show-inheritance:
cpl\_core.pipes.version\_pipe module
------------------------------------
.. automodule:: cpl_core.pipes.version_pipe
:members:
:undoc-members:
:show-inheritance:
Module contents
---------------
.. automodule:: cpl_core.pipes
:members:
:undoc-members:
:show-inheritance:

View File

@@ -12,5 +12,6 @@ API Reference
cpl_core.environment cpl_core.environment
cpl_core.logging cpl_core.logging
cpl_core.mailing cpl_core.mailing
cpl_core.pipes
cpl_core.time cpl_core.time
cpl_core.utils cpl_core.utils

View File

@@ -1,45 +0,0 @@
cpl\_query.tests package
========================
Submodules
----------
cpl\_query.tests.iterable\_test module
--------------------------------------
.. automodule:: cpl_query.tests.iterable_test
:members:
:undoc-members:
:show-inheritance:
cpl\_query.tests.models module
------------------------------
.. automodule:: cpl_query.tests.models
:members:
:undoc-members:
:show-inheritance:
cpl\_query.tests.query\_test module
-----------------------------------
.. automodule:: cpl_query.tests.query_test
:members:
:undoc-members:
:show-inheritance:
cpl\_query.tests.tester module
------------------------------
.. automodule:: cpl_query.tests.tester
:members:
:undoc-members:
:show-inheritance:
Module contents
---------------
.. automodule:: cpl_query.tests
:members:
:undoc-members:
:show-inheritance:

View File

@@ -6,4 +6,5 @@ Getting started
quickstart quickstart
setup setup
tutorials

View File

@@ -10,6 +10,72 @@ The Common Python Library (CPL) is a package for python and a development platfo
This CPL docs help you learn, understand and use the package. From your first application to complex apps for enterprises. This CPL docs help you learn, understand and use the package. From your first application to complex apps for enterprises.
Features
--------
- cpl-core
- Expandle
- Application base
- Standardized application classes
- Application object builder
- Application extension classes
- Startup classes
- Startup extension classes
- Configuration
- Configure via object mapped JSON
- Console argument handling
- Console class for in and output
- Banner
- Spinner
- Options (menu)
- Table
- Write
- Write_at
- Write_line
- Write_line_at
- Dependency injection
- Service lifetimes: singleton, scoped and transient
- Providing of application environment
- Environment (development, staging, testing, production)
- Appname
- Customer
- Hostname
- Runtime directory
- Working directory
- Logging
- Standardized logger
- Log-level (FATAL, ERROR, WARN, INFO, DEBUG & TRACE)
- Mail handling
- Send mails
- Pipe classes
- Convert input
- Utils
- Credential manager
- Encryption via BASE64
- PIP wrapper class based on subprocess
- Run pip commands
- String converter to different variants
- to_lower_case
- to_camel_case
- ...
- cpl-cli
- Expandle
- Code generation
- Package managing
- Build & Publishing
- cpl-discord
- Utils for discord.py
- Connector between cpl-core and discord.py
- Prepared services for dependency injection
- cpl-query
- Python list extensions
- Functions for sorting and filtering
- Like linq from C# but in python xD
- cpl-translate
- Generic translations
- Prepared translation service and translate pipe
- Get translation from JSON files key dot.key notation
Manuals Manuals
--------- ---------
@@ -20,6 +86,7 @@ These pages go into great detail about everything the Library can do.
introduction introduction
getting_started getting_started
contributing
cpl_cli cpl_cli
cpl_core cpl_core
cpl_query cpl_query

View File

@@ -4,6 +4,53 @@ The Common Python Library (CPL) is a package for python and a development platfo
This CPL docs help you learn, understand and use the package. From your first application to complex apps for enterprises. This CPL docs help you learn, understand and use the package. From your first application to complex apps for enterprises.
## Feature overview
- Expandle
- Application base
- Standardized application classes
- Application object builder
- Application extension classes
- Startup classes
- Startup extension classes
- Configuration
- Configure via object mapped JSON
- Console argument handling
- Console class for in and output
- Banner
- Spinner
- Options (menu)
- Table
- Write
- Write_at
- Write_line
- Write_line_at
- Dependency injection
- Service lifetimes: singleton, scoped and transient
- Providing of application environment
- Environment (development, staging, testing, production)
- Appname
- Customer
- Hostname
- Runtime directory
- Working directory
- Logging
- Standardized logger
- Log-level (FATAL, ERROR, WARN, INFO, DEBUG & TRACE)
- Mail handling
- Send mails
- Pipe classes
- Convert input
- Utils
- Credential manager
- Encryption via BASE64
- PIP wrapper class based on subprocess
- Run pip commands
- String converter to different variants
- to_lower_case
- to_camel_case
- ...
## Explore ## Explore
- [Getting started](quickstart) - [Getting started](quickstart)

View File

@@ -7,4 +7,6 @@ cpl
getting_started getting_started
cpl_cli cpl_cli
cpl_core cpl_core
cpl_discord
cpl_query cpl_query
cpl_translate

View File

@@ -5,6 +5,7 @@
1. [Prerequisites](#prerequisites) 1. [Prerequisites](#prerequisites)
2. [Install the package](#install-the-package) 2. [Install the package](#install-the-package)
3. [Install the CLI](#install-the-cli) 3. [Install the CLI](#install-the-cli)
3. [Install the query](#install-the-query)
4. [Create a initial application](#create-initial-console-app) 4. [Create a initial application](#create-initial-console-app)
5. [Create a initial library](#create-initial-library) 5. [Create a initial library](#create-initial-library)
6. [Start the application](#start-the-app) 6. [Start the application](#start-the-app)
@@ -26,7 +27,7 @@ Also you need to have the following installed.
To install the package, open a terminal window and run the following command: To install the package, open a terminal window and run the following command:
```sh ```sh
pip install sh_cpl --extra-index-url https://pip.sh-edraft.de pip install sh_cpl-core --extra-index-url https://pip.sh-edraft.de
``` ```
## Install the CLI ## Install the CLI
@@ -39,6 +40,14 @@ To install the CLI, open a terminal window and run the following command:
pip install sh_cpl-cli --extra-index-url https://pip.sh-edraft.de pip install sh_cpl-cli --extra-index-url https://pip.sh-edraft.de
``` ```
## Install the query
To install the package, open a terminal window and run the following command:
```sh
pip install sh_cpl-query --extra-index-url https://pip.sh-edraft.de
```
## Create initial console app ## Create initial console app
You develop apps and packages in the context of an CPL project which is defined in an cpl_core.json. You develop apps and packages in the context of an CPL project which is defined in an cpl_core.json.

View File

@@ -0,0 +1,3 @@
# Using appsettings.json
## Comming soon

View File

@@ -0,0 +1,3 @@
# Handle console arguments
## Comming soon

View File

@@ -0,0 +1,3 @@
# Use cpl_core.console.Console
## Comming soon

View File

@@ -0,0 +1,3 @@
# Create startup class
## Comming soon

View File

@@ -0,0 +1,3 @@
# Extend application
## Comming soon

View File

@@ -0,0 +1,3 @@
# Extend startup
## Comming soon

View File

@@ -0,0 +1,3 @@
# Use builtin logger
## Comming soon

View File

@@ -0,0 +1,3 @@
# Send mails
## Comming soon

View File

@@ -0,0 +1,14 @@
Tutorials
=============
.. toctree::
:maxdepth: 4
tutorials.extend-application
tutorials.create-startup
tutorials.extend-startup
tutorials.appsettings
tutorials.console-arguments
tutorials.console
tutorials.logging
tutorials.mail

View File

@@ -0,0 +1,134 @@
/*
* _sphinx_javascript_frameworks_compat.js
* ~~~~~~~~~~
*
* Compatability shim for jQuery and underscores.js.
*
* WILL BE REMOVED IN Sphinx 6.0
* xref RemovedInSphinx60Warning
*
*/
/**
* select a different prefix for underscore
*/
$u = _.noConflict();
/**
* small helper function to urldecode strings
*
* See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL
*/
jQuery.urldecode = function(x) {
if (!x) {
return x
}
return decodeURIComponent(x.replace(/\+/g, ' '));
};
/**
* small helper function to urlencode strings
*/
jQuery.urlencode = encodeURIComponent;
/**
* This function returns the parsed url parameters of the
* current request. Multiple values per key are supported,
* it will always return arrays of strings for the value parts.
*/
jQuery.getQueryParameters = function(s) {
if (typeof s === 'undefined')
s = document.location.search;
var parts = s.substr(s.indexOf('?') + 1).split('&');
var result = {};
for (var i = 0; i < parts.length; i++) {
var tmp = parts[i].split('=', 2);
var key = jQuery.urldecode(tmp[0]);
var value = jQuery.urldecode(tmp[1]);
if (key in result)
result[key].push(value);
else
result[key] = [value];
}
return result;
};
/**
* highlight a given string on a jquery object by wrapping it in
* span elements with the given class name.
*/
jQuery.fn.highlightText = function(text, className) {
function highlight(node, addItems) {
if (node.nodeType === 3) {
var val = node.nodeValue;
var pos = val.toLowerCase().indexOf(text);
if (pos >= 0 &&
!jQuery(node.parentNode).hasClass(className) &&
!jQuery(node.parentNode).hasClass("nohighlight")) {
var span;
var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg");
if (isInSVG) {
span = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
} else {
span = document.createElement("span");
span.className = className;
}
span.appendChild(document.createTextNode(val.substr(pos, text.length)));
node.parentNode.insertBefore(span, node.parentNode.insertBefore(
document.createTextNode(val.substr(pos + text.length)),
node.nextSibling));
node.nodeValue = val.substr(0, pos);
if (isInSVG) {
var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect");
var bbox = node.parentElement.getBBox();
rect.x.baseVal.value = bbox.x;
rect.y.baseVal.value = bbox.y;
rect.width.baseVal.value = bbox.width;
rect.height.baseVal.value = bbox.height;
rect.setAttribute('class', className);
addItems.push({
"parent": node.parentNode,
"target": rect});
}
}
}
else if (!jQuery(node).is("button, select, textarea")) {
jQuery.each(node.childNodes, function() {
highlight(this, addItems);
});
}
}
var addItems = [];
var result = this.each(function() {
highlight(this, addItems);
});
for (var i = 0; i < addItems.length; ++i) {
jQuery(addItems[i].parent).before(addItems[i].target);
}
return result;
};
/*
* backward compatibility for jQuery.browser
* This will be supported until firefox bug is fixed.
*/
if (!jQuery.browser) {
jQuery.uaMatch = function(ua) {
ua = ua.toLowerCase();
var match = /(chrome)[ \/]([\w.]+)/.exec(ua) ||
/(webkit)[ \/]([\w.]+)/.exec(ua) ||
/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) ||
/(msie) ([\w.]+)/.exec(ua) ||
ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) ||
[];
return {
browser: match[ 1 ] || "",
version: match[ 2 ] || "0"
};
};
jQuery.browser = {};
jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true;
}

View File

@@ -4,7 +4,7 @@
* *
* Sphinx stylesheet -- basic theme. * Sphinx stylesheet -- basic theme.
* *
* :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS. * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details. * :license: BSD, see LICENSE for details.
* *
*/ */
@@ -222,7 +222,7 @@ table.modindextable td {
/* -- general body styles --------------------------------------------------- */ /* -- general body styles --------------------------------------------------- */
div.body { div.body {
min-width: 450px; min-width: 360px;
max-width: 800px; max-width: 800px;
} }
@@ -236,7 +236,6 @@ div.body p, div.body dd, div.body li, div.body blockquote {
a.headerlink { a.headerlink {
visibility: hidden; visibility: hidden;
} }
a.brackets:before, a.brackets:before,
span.brackets > a:before{ span.brackets > a:before{
content: "["; content: "[";
@@ -247,6 +246,7 @@ span.brackets > a:after {
content: "]"; content: "]";
} }
h1:hover > a.headerlink, h1:hover > a.headerlink,
h2:hover > a.headerlink, h2:hover > a.headerlink,
h3:hover > a.headerlink, h3:hover > a.headerlink,
@@ -334,13 +334,11 @@ aside.sidebar {
p.sidebar-title { p.sidebar-title {
font-weight: bold; font-weight: bold;
} }
div.admonition, div.topic, blockquote { div.admonition, div.topic, blockquote {
clear: left; clear: left;
} }
/* -- topics ---------------------------------------------------------------- */ /* -- topics ---------------------------------------------------------------- */
div.topic { div.topic {
border: 1px solid #ccc; border: 1px solid #ccc;
padding: 7px; padding: 7px;
@@ -428,10 +426,6 @@ table.docutils td, table.docutils th {
border-bottom: 1px solid #aaa; border-bottom: 1px solid #aaa;
} }
table.footnote td, table.footnote th {
border: 0 !important;
}
th { th {
text-align: left; text-align: left;
padding-right: 5px; padding-right: 5px;
@@ -615,6 +609,7 @@ ul.simple p {
margin-bottom: 0; margin-bottom: 0;
} }
/* Docutils 0.17 and older (footnotes & citations) */
dl.footnote > dt, dl.footnote > dt,
dl.citation > dt { dl.citation > dt {
float: left; float: left;
@@ -632,6 +627,33 @@ dl.citation > dd:after {
clear: both; clear: both;
} }
/* Docutils 0.18+ (footnotes & citations) */
aside.footnote > span,
div.citation > span {
float: left;
}
aside.footnote > span:last-of-type,
div.citation > span:last-of-type {
padding-right: 0.5em;
}
aside.footnote > p {
margin-left: 2em;
}
div.citation > p {
margin-left: 4em;
}
aside.footnote > p:last-of-type,
div.citation > p:last-of-type {
margin-bottom: 0em;
}
aside.footnote > p:last-of-type:after,
div.citation > p:last-of-type:after {
content: "";
clear: both;
}
/* Footnotes & citations ends */
dl.field-list { dl.field-list {
display: grid; display: grid;
grid-template-columns: fit-content(30%) auto; grid-template-columns: fit-content(30%) auto;
@@ -731,8 +753,9 @@ dl.glossary dt {
.classifier:before { .classifier:before {
font-style: normal; font-style: normal;
margin: 0.5em; margin: 0 0.5em;
content: ":"; content: ":";
display: inline-block;
} }
abbr, acronym { abbr, acronym {
@@ -756,6 +779,7 @@ span.pre {
-ms-hyphens: none; -ms-hyphens: none;
-webkit-hyphens: none; -webkit-hyphens: none;
hyphens: none; hyphens: none;
white-space: nowrap;
} }
div[class*="highlight-"] { div[class*="highlight-"] {

View File

@@ -2,322 +2,263 @@
* doctools.js * doctools.js
* ~~~~~~~~~~~ * ~~~~~~~~~~~
* *
* Sphinx JavaScript utilities for all documentation. * Base JavaScript utilities for all Sphinx HTML documentation.
* *
* :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS. * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details. * :license: BSD, see LICENSE for details.
* *
*/ */
"use strict";
/** const _ready = (callback) => {
* select a different prefix for underscore if (document.readyState !== "loading") {
*/ callback();
$u = _.noConflict(); } else {
document.addEventListener("DOMContentLoaded", callback);
/**
* make the code below compatible with browsers without
* an installed firebug like debugger
if (!window.console || !console.firebug) {
var names = ["log", "debug", "info", "warn", "error", "assert", "dir",
"dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace",
"profile", "profileEnd"];
window.console = {};
for (var i = 0; i < names.length; ++i)
window.console[names[i]] = function() {};
}
*/
/**
* small helper function to urldecode strings
*
* See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL
*/
jQuery.urldecode = function(x) {
if (!x) {
return x
} }
return decodeURIComponent(x.replace(/\+/g, ' '));
}; };
/** /**
* small helper function to urlencode strings * highlight a given string on a node by wrapping it in
*/
jQuery.urlencode = encodeURIComponent;
/**
* This function returns the parsed url parameters of the
* current request. Multiple values per key are supported,
* it will always return arrays of strings for the value parts.
*/
jQuery.getQueryParameters = function(s) {
if (typeof s === 'undefined')
s = document.location.search;
var parts = s.substr(s.indexOf('?') + 1).split('&');
var result = {};
for (var i = 0; i < parts.length; i++) {
var tmp = parts[i].split('=', 2);
var key = jQuery.urldecode(tmp[0]);
var value = jQuery.urldecode(tmp[1]);
if (key in result)
result[key].push(value);
else
result[key] = [value];
}
return result;
};
/**
* highlight a given string on a jquery object by wrapping it in
* span elements with the given class name. * span elements with the given class name.
*/ */
jQuery.fn.highlightText = function(text, className) { const _highlight = (node, addItems, text, className) => {
function highlight(node, addItems) { if (node.nodeType === Node.TEXT_NODE) {
if (node.nodeType === 3) { const val = node.nodeValue;
var val = node.nodeValue; const parent = node.parentNode;
var pos = val.toLowerCase().indexOf(text); const pos = val.toLowerCase().indexOf(text);
if (pos >= 0 && if (
!jQuery(node.parentNode).hasClass(className) && pos >= 0 &&
!jQuery(node.parentNode).hasClass("nohighlight")) { !parent.classList.contains(className) &&
var span; !parent.classList.contains("nohighlight")
var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); ) {
if (isInSVG) { let span;
span = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
} else { const closestNode = parent.closest("body, svg, foreignObject");
span = document.createElement("span"); const isInSVG = closestNode && closestNode.matches("svg");
span.className = className; if (isInSVG) {
} span = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
span.appendChild(document.createTextNode(val.substr(pos, text.length))); } else {
node.parentNode.insertBefore(span, node.parentNode.insertBefore( span = document.createElement("span");
span.classList.add(className);
}
span.appendChild(document.createTextNode(val.substr(pos, text.length)));
parent.insertBefore(
span,
parent.insertBefore(
document.createTextNode(val.substr(pos + text.length)), document.createTextNode(val.substr(pos + text.length)),
node.nextSibling)); node.nextSibling
node.nodeValue = val.substr(0, pos); )
if (isInSVG) { );
var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); node.nodeValue = val.substr(0, pos);
var bbox = node.parentElement.getBBox();
rect.x.baseVal.value = bbox.x; if (isInSVG) {
rect.y.baseVal.value = bbox.y; const rect = document.createElementNS(
rect.width.baseVal.value = bbox.width; "http://www.w3.org/2000/svg",
rect.height.baseVal.value = bbox.height; "rect"
rect.setAttribute('class', className); );
addItems.push({ const bbox = parent.getBBox();
"parent": node.parentNode, rect.x.baseVal.value = bbox.x;
"target": rect}); rect.y.baseVal.value = bbox.y;
} rect.width.baseVal.value = bbox.width;
rect.height.baseVal.value = bbox.height;
rect.setAttribute("class", className);
addItems.push({ parent: parent, target: rect });
} }
} }
else if (!jQuery(node).is("button, select, textarea")) { } else if (node.matches && !node.matches("button, select, textarea")) {
jQuery.each(node.childNodes, function() { node.childNodes.forEach((el) => _highlight(el, addItems, text, className));
highlight(this, addItems);
});
}
} }
var addItems = [];
var result = this.each(function() {
highlight(this, addItems);
});
for (var i = 0; i < addItems.length; ++i) {
jQuery(addItems[i].parent).before(addItems[i].target);
}
return result;
}; };
const _highlightText = (thisNode, text, className) => {
/* let addItems = [];
* backward compatibility for jQuery.browser _highlight(thisNode, addItems, text, className);
* This will be supported until firefox bug is fixed. addItems.forEach((obj) =>
*/ obj.parent.insertAdjacentElement("beforebegin", obj.target)
if (!jQuery.browser) { );
jQuery.uaMatch = function(ua) { };
ua = ua.toLowerCase();
var match = /(chrome)[ \/]([\w.]+)/.exec(ua) ||
/(webkit)[ \/]([\w.]+)/.exec(ua) ||
/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) ||
/(msie) ([\w.]+)/.exec(ua) ||
ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) ||
[];
return {
browser: match[ 1 ] || "",
version: match[ 2 ] || "0"
};
};
jQuery.browser = {};
jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true;
}
/** /**
* Small JavaScript module for the documentation. * Small JavaScript module for the documentation.
*/ */
var Documentation = { const Documentation = {
init: () => {
init : function() { Documentation.highlightSearchWords();
this.fixFirefoxAnchorBug(); Documentation.initDomainIndexTable();
this.highlightSearchWords(); Documentation.initOnKeyListeners();
this.initIndexTable();
if (DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) {
this.initOnKeyListeners();
}
}, },
/** /**
* i18n support * i18n support
*/ */
TRANSLATIONS : {}, TRANSLATIONS: {},
PLURAL_EXPR : function(n) { return n === 1 ? 0 : 1; }, PLURAL_EXPR: (n) => (n === 1 ? 0 : 1),
LOCALE : 'unknown', LOCALE: "unknown",
// gettext and ngettext don't access this so that the functions // gettext and ngettext don't access this so that the functions
// can safely bound to a different name (_ = Documentation.gettext) // can safely bound to a different name (_ = Documentation.gettext)
gettext : function(string) { gettext: (string) => {
var translated = Documentation.TRANSLATIONS[string]; const translated = Documentation.TRANSLATIONS[string];
if (typeof translated === 'undefined') switch (typeof translated) {
return string; case "undefined":
return (typeof translated === 'string') ? translated : translated[0]; return string; // no translation
case "string":
return translated; // translation exists
default:
return translated[0]; // (singular, plural) translation tuple exists
}
}, },
ngettext : function(singular, plural, n) { ngettext: (singular, plural, n) => {
var translated = Documentation.TRANSLATIONS[singular]; const translated = Documentation.TRANSLATIONS[singular];
if (typeof translated === 'undefined') if (typeof translated !== "undefined")
return (n == 1) ? singular : plural; return translated[Documentation.PLURAL_EXPR(n)];
return translated[Documentation.PLURALEXPR(n)]; return n === 1 ? singular : plural;
}, },
addTranslations : function(catalog) { addTranslations: (catalog) => {
for (var key in catalog.messages) Object.assign(Documentation.TRANSLATIONS, catalog.messages);
this.TRANSLATIONS[key] = catalog.messages[key]; Documentation.PLURAL_EXPR = new Function(
this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); "n",
this.LOCALE = catalog.locale; `return (${catalog.plural_expr})`
}, );
Documentation.LOCALE = catalog.locale;
/**
* add context elements like header anchor links
*/
addContextElements : function() {
$('div[id] > :header:first').each(function() {
$('<a class="headerlink">\u00B6</a>').
attr('href', '#' + this.id).
attr('title', _('Permalink to this headline')).
appendTo(this);
});
$('dt[id]').each(function() {
$('<a class="headerlink">\u00B6</a>').
attr('href', '#' + this.id).
attr('title', _('Permalink to this definition')).
appendTo(this);
});
},
/**
* workaround a firefox stupidity
* see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075
*/
fixFirefoxAnchorBug : function() {
if (document.location.hash && $.browser.mozilla)
window.setTimeout(function() {
document.location.href += '';
}, 10);
}, },
/** /**
* highlight the search words provided in the url in the text * highlight the search words provided in the url in the text
*/ */
highlightSearchWords : function() { highlightSearchWords: () => {
var params = $.getQueryParameters(); const highlight =
var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; new URLSearchParams(window.location.search).get("highlight") || "";
if (terms.length) { const terms = highlight.toLowerCase().split(/\s+/).filter(x => x);
var body = $('div.body'); if (terms.length === 0) return; // nothing to do
if (!body.length) {
body = $('body');
}
window.setTimeout(function() {
$.each(terms, function() {
body.highlightText(this.toLowerCase(), 'highlighted');
});
}, 10);
$('<p class="highlight-link"><a href="javascript:Documentation.' +
'hideSearchWords()">' + _('Hide Search Matches') + '</a></p>')
.appendTo($('#searchbox'));
}
},
/** // There should never be more than one element matching "div.body"
* init the domain index toggle buttons const divBody = document.querySelectorAll("div.body");
*/ const body = divBody.length ? divBody[0] : document.querySelector("body");
initIndexTable : function() { window.setTimeout(() => {
var togglers = $('img.toggler').click(function() { terms.forEach((term) => _highlightText(body, term, "highlighted"));
var src = $(this).attr('src'); }, 10);
var idnum = $(this).attr('id').substr(7);
$('tr.cg-' + idnum).toggle(); const searchBox = document.getElementById("searchbox");
if (src.substr(-9) === 'minus.png') if (searchBox === null) return;
$(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); searchBox.appendChild(
else document
$(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); .createRange()
}).css('display', ''); .createContextualFragment(
if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { '<p class="highlight-link">' +
togglers.click(); '<a href="javascript:Documentation.hideSearchWords()">' +
} Documentation.gettext("Hide Search Matches") +
"</a></p>"
)
);
}, },
/** /**
* helper function to hide the search marks again * helper function to hide the search marks again
*/ */
hideSearchWords : function() { hideSearchWords: () => {
$('#searchbox .highlight-link').fadeOut(300); document
$('span.highlighted').removeClass('highlighted'); .querySelectorAll("#searchbox .highlight-link")
.forEach((el) => el.remove());
document
.querySelectorAll("span.highlighted")
.forEach((el) => el.classList.remove("highlighted"));
const url = new URL(window.location);
url.searchParams.delete("highlight");
window.history.replaceState({}, "", url);
}, },
/** /**
* make the url absolute * helper function to focus on search bar
*/ */
makeURL : function(relativeURL) { focusSearchBar: () => {
return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; document.querySelectorAll("input[name=q]")[0]?.focus();
}, },
/** /**
* get the current relative url * Initialise the domain index toggle buttons
*/ */
getCurrentURL : function() { initDomainIndexTable: () => {
var path = document.location.pathname; const toggler = (el) => {
var parts = path.split(/\//); const idNumber = el.id.substr(7);
$.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`);
if (this === '..') if (el.src.substr(-9) === "minus.png") {
parts.pop(); el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`;
}); toggledRows.forEach((el) => (el.style.display = "none"));
var url = parts.join('/'); } else {
return path.substring(url.lastIndexOf('/') + 1, path.length - 1); el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`;
toggledRows.forEach((el) => (el.style.display = ""));
}
};
const togglerElements = document.querySelectorAll("img.toggler");
togglerElements.forEach((el) =>
el.addEventListener("click", (event) => toggler(event.currentTarget))
);
togglerElements.forEach((el) => (el.style.display = ""));
if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler);
}, },
initOnKeyListeners: function() { initOnKeyListeners: () => {
$(document).keydown(function(event) { // only install a listener if it is really needed
var activeElementType = document.activeElement.tagName; if (
// don't navigate when in search box, textarea, dropdown or button !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS &&
if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT' !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS
&& activeElementType !== 'BUTTON' && !event.altKey && !event.ctrlKey && !event.metaKey )
&& !event.shiftKey) { return;
switch (event.keyCode) {
case 37: // left const blacklistedElements = new Set([
var prevHref = $('link[rel="prev"]').prop('href'); "TEXTAREA",
if (prevHref) { "INPUT",
window.location.href = prevHref; "SELECT",
return false; "BUTTON",
]);
document.addEventListener("keydown", (event) => {
if (blacklistedElements.has(document.activeElement.tagName)) return; // bail for input elements
if (event.altKey || event.ctrlKey || event.metaKey) return; // bail with special keys
if (!event.shiftKey) {
switch (event.key) {
case "ArrowLeft":
if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break;
const prevLink = document.querySelector('link[rel="prev"]');
if (prevLink && prevLink.href) {
window.location.href = prevLink.href;
event.preventDefault();
} }
break; break;
case 39: // right case "ArrowRight":
var nextHref = $('link[rel="next"]').prop('href'); if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break;
if (nextHref) {
window.location.href = nextHref; const nextLink = document.querySelector('link[rel="next"]');
return false; if (nextLink && nextLink.href) {
window.location.href = nextLink.href;
event.preventDefault();
} }
break; break;
case "Escape":
if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break;
Documentation.hideSearchWords();
event.preventDefault();
} }
} }
// some keyboard layouts may need Shift to get /
switch (event.key) {
case "/":
if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break;
Documentation.focusSearchBar();
event.preventDefault();
}
}); });
} },
}; };
// quick alias for translations // quick alias for translations
_ = Documentation.gettext; const _ = Documentation.gettext;
$(document).ready(function() { _ready(Documentation.init);
Documentation.init();
});

View File

@@ -1,12 +1,14 @@
var DOCUMENTATION_OPTIONS = { var DOCUMENTATION_OPTIONS = {
URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
VERSION: '', VERSION: '',
LANGUAGE: 'None', LANGUAGE: 'en',
COLLAPSE_INDEX: false, COLLAPSE_INDEX: false,
BUILDER: 'html', BUILDER: 'html',
FILE_SUFFIX: '.html', FILE_SUFFIX: '.html',
LINK_SUFFIX: '.html', LINK_SUFFIX: '.html',
HAS_SOURCE: true, HAS_SOURCE: true,
SOURCELINK_SUFFIX: '.txt', SOURCELINK_SUFFIX: '.txt',
NAVIGATION_WITH_KEYS: false NAVIGATION_WITH_KEYS: false,
SHOW_SEARCH_SUMMARY: true,
ENABLE_SEARCH_SHORTCUTS: false,
}; };

View File

@@ -1,15 +1,15 @@
/*! /*!
* jQuery JavaScript Library v3.5.1 * jQuery JavaScript Library v3.6.0
* https://jquery.com/ * https://jquery.com/
* *
* Includes Sizzle.js * Includes Sizzle.js
* https://sizzlejs.com/ * https://sizzlejs.com/
* *
* Copyright JS Foundation and other contributors * Copyright OpenJS Foundation and other contributors
* Released under the MIT license * Released under the MIT license
* https://jquery.org/license * https://jquery.org/license
* *
* Date: 2020-05-04T22:49Z * Date: 2021-03-02T17:08Z
*/ */
( function( global, factory ) { ( function( global, factory ) {
@@ -76,12 +76,16 @@ var support = {};
var isFunction = function isFunction( obj ) { var isFunction = function isFunction( obj ) {
// Support: Chrome <=57, Firefox <=52 // Support: Chrome <=57, Firefox <=52
// In some browsers, typeof returns "function" for HTML <object> elements // In some browsers, typeof returns "function" for HTML <object> elements
// (i.e., `typeof document.createElement( "object" ) === "function"`). // (i.e., `typeof document.createElement( "object" ) === "function"`).
// We don't want to classify *any* DOM node as a function. // We don't want to classify *any* DOM node as a function.
return typeof obj === "function" && typeof obj.nodeType !== "number"; // Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5
}; // Plus for old WebKit, typeof returns "function" for HTML collections
// (e.g., `typeof document.getElementsByTagName("div") === "function"`). (gh-4756)
return typeof obj === "function" && typeof obj.nodeType !== "number" &&
typeof obj.item !== "function";
};
var isWindow = function isWindow( obj ) { var isWindow = function isWindow( obj ) {
@@ -147,7 +151,7 @@ function toType( obj ) {
var var
version = "3.5.1", version = "3.6.0",
// Define a local copy of jQuery // Define a local copy of jQuery
jQuery = function( selector, context ) { jQuery = function( selector, context ) {
@@ -401,7 +405,7 @@ jQuery.extend( {
if ( isArrayLike( Object( arr ) ) ) { if ( isArrayLike( Object( arr ) ) ) {
jQuery.merge( ret, jQuery.merge( ret,
typeof arr === "string" ? typeof arr === "string" ?
[ arr ] : arr [ arr ] : arr
); );
} else { } else {
push.call( ret, arr ); push.call( ret, arr );
@@ -496,9 +500,9 @@ if ( typeof Symbol === "function" ) {
// Populate the class2type map // Populate the class2type map
jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ),
function( _i, name ) { function( _i, name ) {
class2type[ "[object " + name + "]" ] = name.toLowerCase(); class2type[ "[object " + name + "]" ] = name.toLowerCase();
} ); } );
function isArrayLike( obj ) { function isArrayLike( obj ) {
@@ -518,14 +522,14 @@ function isArrayLike( obj ) {
} }
var Sizzle = var Sizzle =
/*! /*!
* Sizzle CSS Selector Engine v2.3.5 * Sizzle CSS Selector Engine v2.3.6
* https://sizzlejs.com/ * https://sizzlejs.com/
* *
* Copyright JS Foundation and other contributors * Copyright JS Foundation and other contributors
* Released under the MIT license * Released under the MIT license
* https://js.foundation/ * https://js.foundation/
* *
* Date: 2020-03-14 * Date: 2021-02-16
*/ */
( function( window ) { ( function( window ) {
var i, var i,
@@ -1108,8 +1112,8 @@ support = Sizzle.support = {};
* @returns {Boolean} True iff elem is a non-HTML XML node * @returns {Boolean} True iff elem is a non-HTML XML node
*/ */
isXML = Sizzle.isXML = function( elem ) { isXML = Sizzle.isXML = function( elem ) {
var namespace = elem.namespaceURI, var namespace = elem && elem.namespaceURI,
docElem = ( elem.ownerDocument || elem ).documentElement; docElem = elem && ( elem.ownerDocument || elem ).documentElement;
// Support: IE <=8 // Support: IE <=8
// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes
@@ -3024,9 +3028,9 @@ var rneedsContext = jQuery.expr.match.needsContext;
function nodeName( elem, name ) { function nodeName( elem, name ) {
return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
}; }
var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i );
@@ -3997,8 +4001,8 @@ jQuery.extend( {
resolveContexts = Array( i ), resolveContexts = Array( i ),
resolveValues = slice.call( arguments ), resolveValues = slice.call( arguments ),
// the master Deferred // the primary Deferred
master = jQuery.Deferred(), primary = jQuery.Deferred(),
// subordinate callback factory // subordinate callback factory
updateFunc = function( i ) { updateFunc = function( i ) {
@@ -4006,30 +4010,30 @@ jQuery.extend( {
resolveContexts[ i ] = this; resolveContexts[ i ] = this;
resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
if ( !( --remaining ) ) { if ( !( --remaining ) ) {
master.resolveWith( resolveContexts, resolveValues ); primary.resolveWith( resolveContexts, resolveValues );
} }
}; };
}; };
// Single- and empty arguments are adopted like Promise.resolve // Single- and empty arguments are adopted like Promise.resolve
if ( remaining <= 1 ) { if ( remaining <= 1 ) {
adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject, adoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject,
!remaining ); !remaining );
// Use .then() to unwrap secondary thenables (cf. gh-3000) // Use .then() to unwrap secondary thenables (cf. gh-3000)
if ( master.state() === "pending" || if ( primary.state() === "pending" ||
isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {
return master.then(); return primary.then();
} }
} }
// Multiple arguments are aggregated like Promise.all array elements // Multiple arguments are aggregated like Promise.all array elements
while ( i-- ) { while ( i-- ) {
adoptValue( resolveValues[ i ], updateFunc( i ), master.reject ); adoptValue( resolveValues[ i ], updateFunc( i ), primary.reject );
} }
return master.promise(); return primary.promise();
} }
} ); } );
@@ -4180,8 +4184,8 @@ var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
for ( ; i < len; i++ ) { for ( ; i < len; i++ ) {
fn( fn(
elems[ i ], key, raw ? elems[ i ], key, raw ?
value : value :
value.call( elems[ i ], i, fn( elems[ i ], key ) ) value.call( elems[ i ], i, fn( elems[ i ], key ) )
); );
} }
} }
@@ -5089,10 +5093,7 @@ function buildFragment( elems, context, scripts, selection, ignored ) {
} }
var var rtypenamespace = /^([^.]*)(?:\.(.+)|)/;
rkeyEvent = /^key/,
rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
rtypenamespace = /^([^.]*)(?:\.(.+)|)/;
function returnTrue() { function returnTrue() {
return true; return true;
@@ -5387,8 +5388,8 @@ jQuery.event = {
event = jQuery.event.fix( nativeEvent ), event = jQuery.event.fix( nativeEvent ),
handlers = ( handlers = (
dataPriv.get( this, "events" ) || Object.create( null ) dataPriv.get( this, "events" ) || Object.create( null )
)[ event.type ] || [], )[ event.type ] || [],
special = jQuery.event.special[ event.type ] || {}; special = jQuery.event.special[ event.type ] || {};
// Use the fix-ed jQuery.Event rather than the (read-only) native event // Use the fix-ed jQuery.Event rather than the (read-only) native event
@@ -5512,12 +5513,12 @@ jQuery.event = {
get: isFunction( hook ) ? get: isFunction( hook ) ?
function() { function() {
if ( this.originalEvent ) { if ( this.originalEvent ) {
return hook( this.originalEvent ); return hook( this.originalEvent );
} }
} : } :
function() { function() {
if ( this.originalEvent ) { if ( this.originalEvent ) {
return this.originalEvent[ name ]; return this.originalEvent[ name ];
} }
}, },
@@ -5656,7 +5657,13 @@ function leverageNative( el, type, expectSync ) {
// Cancel the outer synthetic event // Cancel the outer synthetic event
event.stopImmediatePropagation(); event.stopImmediatePropagation();
event.preventDefault(); event.preventDefault();
return result.value;
// Support: Chrome 86+
// In Chrome, if an element having a focusout handler is blurred by
// clicking outside of it, it invokes the handler synchronously. If
// that handler calls `.remove()` on the element, the data is cleared,
// leaving `result` undefined. We need to guard against this.
return result && result.value;
} }
// If this is an inner synthetic event for an event with a bubbling surrogate // If this is an inner synthetic event for an event with a bubbling surrogate
@@ -5821,34 +5828,7 @@ jQuery.each( {
targetTouches: true, targetTouches: true,
toElement: true, toElement: true,
touches: true, touches: true,
which: true
which: function( event ) {
var button = event.button;
// Add which for key events
if ( event.which == null && rkeyEvent.test( event.type ) ) {
return event.charCode != null ? event.charCode : event.keyCode;
}
// Add which for click: 1 === left; 2 === middle; 3 === right
if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) {
if ( button & 1 ) {
return 1;
}
if ( button & 2 ) {
return 3;
}
if ( button & 4 ) {
return 2;
}
return 0;
}
return event.which;
}
}, jQuery.event.addProp ); }, jQuery.event.addProp );
jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) { jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) {
@@ -5874,6 +5854,12 @@ jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateTyp
return true; return true;
}, },
// Suppress native focus or blur as it's already being fired
// in leverageNative.
_default: function() {
return true;
},
delegateType: delegateType delegateType: delegateType
}; };
} ); } );
@@ -6541,6 +6527,10 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );
// set in CSS while `offset*` properties report correct values. // set in CSS while `offset*` properties report correct values.
// Behavior in IE 9 is more subtle than in newer versions & it passes // Behavior in IE 9 is more subtle than in newer versions & it passes
// some versions of this test; make sure not to make it pass there! // some versions of this test; make sure not to make it pass there!
//
// Support: Firefox 70+
// Only Firefox includes border widths
// in computed dimensions. (gh-4529)
reliableTrDimensions: function() { reliableTrDimensions: function() {
var table, tr, trChild, trStyle; var table, tr, trChild, trStyle;
if ( reliableTrDimensionsVal == null ) { if ( reliableTrDimensionsVal == null ) {
@@ -6548,17 +6538,32 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );
tr = document.createElement( "tr" ); tr = document.createElement( "tr" );
trChild = document.createElement( "div" ); trChild = document.createElement( "div" );
table.style.cssText = "position:absolute;left:-11111px"; table.style.cssText = "position:absolute;left:-11111px;border-collapse:separate";
tr.style.cssText = "border:1px solid";
// Support: Chrome 86+
// Height set through cssText does not get applied.
// Computed height then comes back as 0.
tr.style.height = "1px"; tr.style.height = "1px";
trChild.style.height = "9px"; trChild.style.height = "9px";
// Support: Android 8 Chrome 86+
// In our bodyBackground.html iframe,
// display for all div elements is set to "inline",
// which causes a problem only in Android 8 Chrome 86.
// Ensuring the div is display: block
// gets around this issue.
trChild.style.display = "block";
documentElement documentElement
.appendChild( table ) .appendChild( table )
.appendChild( tr ) .appendChild( tr )
.appendChild( trChild ); .appendChild( trChild );
trStyle = window.getComputedStyle( tr ); trStyle = window.getComputedStyle( tr );
reliableTrDimensionsVal = parseInt( trStyle.height ) > 3; reliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) +
parseInt( trStyle.borderTopWidth, 10 ) +
parseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;
documentElement.removeChild( table ); documentElement.removeChild( table );
} }
@@ -7022,10 +7027,10 @@ jQuery.each( [ "height", "width" ], function( _i, dimension ) {
// Running getBoundingClientRect on a disconnected node // Running getBoundingClientRect on a disconnected node
// in IE throws an error. // in IE throws an error.
( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?
swap( elem, cssShow, function() { swap( elem, cssShow, function() {
return getWidthOrHeight( elem, dimension, extra ); return getWidthOrHeight( elem, dimension, extra );
} ) : } ) :
getWidthOrHeight( elem, dimension, extra ); getWidthOrHeight( elem, dimension, extra );
} }
}, },
@@ -7084,7 +7089,7 @@ jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,
swap( elem, { marginLeft: 0 }, function() { swap( elem, { marginLeft: 0 }, function() {
return elem.getBoundingClientRect().left; return elem.getBoundingClientRect().left;
} ) } )
) + "px"; ) + "px";
} }
} }
); );
@@ -7223,7 +7228,7 @@ Tween.propHooks = {
if ( jQuery.fx.step[ tween.prop ] ) { if ( jQuery.fx.step[ tween.prop ] ) {
jQuery.fx.step[ tween.prop ]( tween ); jQuery.fx.step[ tween.prop ]( tween );
} else if ( tween.elem.nodeType === 1 && ( } else if ( tween.elem.nodeType === 1 && (
jQuery.cssHooks[ tween.prop ] || jQuery.cssHooks[ tween.prop ] ||
tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) { tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {
jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
} else { } else {
@@ -7468,7 +7473,7 @@ function defaultPrefilter( elem, props, opts ) {
anim.done( function() { anim.done( function() {
/* eslint-enable no-loop-func */ /* eslint-enable no-loop-func */
// The final step of a "hide" animation is actually hiding the element // The final step of a "hide" animation is actually hiding the element
if ( !hidden ) { if ( !hidden ) {
@@ -7588,7 +7593,7 @@ function Animation( elem, properties, options ) {
tweens: [], tweens: [],
createTween: function( prop, end ) { createTween: function( prop, end ) {
var tween = jQuery.Tween( elem, animation.opts, prop, end, var tween = jQuery.Tween( elem, animation.opts, prop, end,
animation.opts.specialEasing[ prop ] || animation.opts.easing ); animation.opts.specialEasing[ prop ] || animation.opts.easing );
animation.tweens.push( tween ); animation.tweens.push( tween );
return tween; return tween;
}, },
@@ -7761,7 +7766,8 @@ jQuery.fn.extend( {
anim.stop( true ); anim.stop( true );
} }
}; };
doAnimation.finish = doAnimation;
doAnimation.finish = doAnimation;
return empty || optall.queue === false ? return empty || optall.queue === false ?
this.each( doAnimation ) : this.each( doAnimation ) :
@@ -8401,8 +8407,8 @@ jQuery.fn.extend( {
if ( this.setAttribute ) { if ( this.setAttribute ) {
this.setAttribute( "class", this.setAttribute( "class",
className || value === false ? className || value === false ?
"" : "" :
dataPriv.get( this, "__className__" ) || "" dataPriv.get( this, "__className__" ) || ""
); );
} }
} }
@@ -8417,7 +8423,7 @@ jQuery.fn.extend( {
while ( ( elem = this[ i++ ] ) ) { while ( ( elem = this[ i++ ] ) ) {
if ( elem.nodeType === 1 && if ( elem.nodeType === 1 &&
( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) {
return true; return true;
} }
} }
@@ -8707,9 +8713,7 @@ jQuery.extend( jQuery.event, {
special.bindType || type; special.bindType || type;
// jQuery handler // jQuery handler
handle = ( handle = ( dataPriv.get( cur, "events" ) || Object.create( null ) )[ event.type ] &&
dataPriv.get( cur, "events" ) || Object.create( null )
)[ event.type ] &&
dataPriv.get( cur, "handle" ); dataPriv.get( cur, "handle" );
if ( handle ) { if ( handle ) {
handle.apply( cur, data ); handle.apply( cur, data );
@@ -8856,7 +8860,7 @@ var rquery = ( /\?/ );
// Cross-browser xml parsing // Cross-browser xml parsing
jQuery.parseXML = function( data ) { jQuery.parseXML = function( data ) {
var xml; var xml, parserErrorElem;
if ( !data || typeof data !== "string" ) { if ( !data || typeof data !== "string" ) {
return null; return null;
} }
@@ -8865,12 +8869,17 @@ jQuery.parseXML = function( data ) {
// IE throws on parseFromString with invalid input. // IE throws on parseFromString with invalid input.
try { try {
xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" );
} catch ( e ) { } catch ( e ) {}
xml = undefined;
}
if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { parserErrorElem = xml && xml.getElementsByTagName( "parsererror" )[ 0 ];
jQuery.error( "Invalid XML: " + data ); if ( !xml || parserErrorElem ) {
jQuery.error( "Invalid XML: " + (
parserErrorElem ?
jQuery.map( parserErrorElem.childNodes, function( el ) {
return el.textContent;
} ).join( "\n" ) :
data
) );
} }
return xml; return xml;
}; };
@@ -8971,16 +8980,14 @@ jQuery.fn.extend( {
// Can add propHook for "elements" to filter or add form elements // Can add propHook for "elements" to filter or add form elements
var elements = jQuery.prop( this, "elements" ); var elements = jQuery.prop( this, "elements" );
return elements ? jQuery.makeArray( elements ) : this; return elements ? jQuery.makeArray( elements ) : this;
} ) } ).filter( function() {
.filter( function() {
var type = this.type; var type = this.type;
// Use .is( ":disabled" ) so that fieldset[disabled] works // Use .is( ":disabled" ) so that fieldset[disabled] works
return this.name && !jQuery( this ).is( ":disabled" ) && return this.name && !jQuery( this ).is( ":disabled" ) &&
rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
( this.checked || !rcheckableType.test( type ) ); ( this.checked || !rcheckableType.test( type ) );
} ) } ).map( function( _i, elem ) {
.map( function( _i, elem ) {
var val = jQuery( this ).val(); var val = jQuery( this ).val();
if ( val == null ) { if ( val == null ) {
@@ -9033,7 +9040,8 @@ var
// Anchor tag for parsing the document origin // Anchor tag for parsing the document origin
originAnchor = document.createElement( "a" ); originAnchor = document.createElement( "a" );
originAnchor.href = location.href;
originAnchor.href = location.href;
// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport // Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
function addToPrefiltersOrTransports( structure ) { function addToPrefiltersOrTransports( structure ) {
@@ -9414,8 +9422,8 @@ jQuery.extend( {
// Context for global events is callbackContext if it is a DOM node or jQuery collection // Context for global events is callbackContext if it is a DOM node or jQuery collection
globalEventContext = s.context && globalEventContext = s.context &&
( callbackContext.nodeType || callbackContext.jquery ) ? ( callbackContext.nodeType || callbackContext.jquery ) ?
jQuery( callbackContext ) : jQuery( callbackContext ) :
jQuery.event, jQuery.event,
// Deferreds // Deferreds
deferred = jQuery.Deferred(), deferred = jQuery.Deferred(),
@@ -9727,8 +9735,10 @@ jQuery.extend( {
response = ajaxHandleResponses( s, jqXHR, responses ); response = ajaxHandleResponses( s, jqXHR, responses );
} }
// Use a noop converter for missing script // Use a noop converter for missing script but not if jsonp
if ( !isSuccess && jQuery.inArray( "script", s.dataTypes ) > -1 ) { if ( !isSuccess &&
jQuery.inArray( "script", s.dataTypes ) > -1 &&
jQuery.inArray( "json", s.dataTypes ) < 0 ) {
s.converters[ "text script" ] = function() {}; s.converters[ "text script" ] = function() {};
} }
@@ -10466,12 +10476,6 @@ jQuery.offset = {
options.using.call( elem, props ); options.using.call( elem, props );
} else { } else {
if ( typeof props.top === "number" ) {
props.top += "px";
}
if ( typeof props.left === "number" ) {
props.left += "px";
}
curElem.css( props ); curElem.css( props );
} }
} }
@@ -10640,8 +10644,11 @@ jQuery.each( [ "top", "left" ], function( _i, prop ) {
// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods // Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
jQuery.each( { Height: "height", Width: "width" }, function( name, type ) { jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name }, jQuery.each( {
function( defaultExtra, funcName ) { padding: "inner" + name,
content: type,
"": "outer" + name
}, function( defaultExtra, funcName ) {
// Margin is only for outerHeight, outerWidth // Margin is only for outerHeight, outerWidth
jQuery.fn[ funcName ] = function( margin, value ) { jQuery.fn[ funcName ] = function( margin, value ) {
@@ -10726,7 +10733,8 @@ jQuery.fn.extend( {
} }
} ); } );
jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " + jQuery.each(
( "blur focus focusin focusout resize scroll click dblclick " +
"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
"change select submit keydown keypress keyup contextmenu" ).split( " " ), "change select submit keydown keypress keyup contextmenu" ).split( " " ),
function( _i, name ) { function( _i, name ) {
@@ -10737,7 +10745,8 @@ jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " +
this.on( name, null, data, fn ) : this.on( name, null, data, fn ) :
this.trigger( name ); this.trigger( name );
}; };
} ); }
);

File diff suppressed because one or more lines are too long

View File

@@ -5,12 +5,12 @@
* This script contains the language-specific data used by searchtools.js, * This script contains the language-specific data used by searchtools.js,
* namely the list of stopwords, stemmer, scorer and splitter. * namely the list of stopwords, stemmer, scorer and splitter.
* *
* :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS. * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details. * :license: BSD, see LICENSE for details.
* *
*/ */
var stopwords = ["a","and","are","as","at","be","but","by","for","if","in","into","is","it","near","no","not","of","on","or","such","that","the","their","then","there","these","they","this","to","was","will","with"]; var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"];
/* Non-minified version is copied as a separate JS file, is available */ /* Non-minified version is copied as a separate JS file, is available */
@@ -197,101 +197,3 @@ var Stemmer = function() {
} }
} }
var splitChars = (function() {
var result = {};
var singles = [96, 180, 187, 191, 215, 247, 749, 885, 903, 907, 909, 930, 1014, 1648,
1748, 1809, 2416, 2473, 2481, 2526, 2601, 2609, 2612, 2615, 2653, 2702,
2706, 2729, 2737, 2740, 2857, 2865, 2868, 2910, 2928, 2948, 2961, 2971,
2973, 3085, 3089, 3113, 3124, 3213, 3217, 3241, 3252, 3295, 3341, 3345,
3369, 3506, 3516, 3633, 3715, 3721, 3736, 3744, 3748, 3750, 3756, 3761,
3781, 3912, 4239, 4347, 4681, 4695, 4697, 4745, 4785, 4799, 4801, 4823,
4881, 5760, 5901, 5997, 6313, 7405, 8024, 8026, 8028, 8030, 8117, 8125,
8133, 8181, 8468, 8485, 8487, 8489, 8494, 8527, 11311, 11359, 11687, 11695,
11703, 11711, 11719, 11727, 11735, 12448, 12539, 43010, 43014, 43019, 43587,
43696, 43713, 64286, 64297, 64311, 64317, 64319, 64322, 64325, 65141];
var i, j, start, end;
for (i = 0; i < singles.length; i++) {
result[singles[i]] = true;
}
var ranges = [[0, 47], [58, 64], [91, 94], [123, 169], [171, 177], [182, 184], [706, 709],
[722, 735], [741, 747], [751, 879], [888, 889], [894, 901], [1154, 1161],
[1318, 1328], [1367, 1368], [1370, 1376], [1416, 1487], [1515, 1519], [1523, 1568],
[1611, 1631], [1642, 1645], [1750, 1764], [1767, 1773], [1789, 1790], [1792, 1807],
[1840, 1868], [1958, 1968], [1970, 1983], [2027, 2035], [2038, 2041], [2043, 2047],
[2070, 2073], [2075, 2083], [2085, 2087], [2089, 2307], [2362, 2364], [2366, 2383],
[2385, 2391], [2402, 2405], [2419, 2424], [2432, 2436], [2445, 2446], [2449, 2450],
[2483, 2485], [2490, 2492], [2494, 2509], [2511, 2523], [2530, 2533], [2546, 2547],
[2554, 2564], [2571, 2574], [2577, 2578], [2618, 2648], [2655, 2661], [2672, 2673],
[2677, 2692], [2746, 2748], [2750, 2767], [2769, 2783], [2786, 2789], [2800, 2820],
[2829, 2830], [2833, 2834], [2874, 2876], [2878, 2907], [2914, 2917], [2930, 2946],
[2955, 2957], [2966, 2968], [2976, 2978], [2981, 2983], [2987, 2989], [3002, 3023],
[3025, 3045], [3059, 3076], [3130, 3132], [3134, 3159], [3162, 3167], [3170, 3173],
[3184, 3191], [3199, 3204], [3258, 3260], [3262, 3293], [3298, 3301], [3312, 3332],
[3386, 3388], [3390, 3423], [3426, 3429], [3446, 3449], [3456, 3460], [3479, 3481],
[3518, 3519], [3527, 3584], [3636, 3647], [3655, 3663], [3674, 3712], [3717, 3718],
[3723, 3724], [3726, 3731], [3752, 3753], [3764, 3772], [3774, 3775], [3783, 3791],
[3802, 3803], [3806, 3839], [3841, 3871], [3892, 3903], [3949, 3975], [3980, 4095],
[4139, 4158], [4170, 4175], [4182, 4185], [4190, 4192], [4194, 4196], [4199, 4205],
[4209, 4212], [4226, 4237], [4250, 4255], [4294, 4303], [4349, 4351], [4686, 4687],
[4702, 4703], [4750, 4751], [4790, 4791], [4806, 4807], [4886, 4887], [4955, 4968],
[4989, 4991], [5008, 5023], [5109, 5120], [5741, 5742], [5787, 5791], [5867, 5869],
[5873, 5887], [5906, 5919], [5938, 5951], [5970, 5983], [6001, 6015], [6068, 6102],
[6104, 6107], [6109, 6111], [6122, 6127], [6138, 6159], [6170, 6175], [6264, 6271],
[6315, 6319], [6390, 6399], [6429, 6469], [6510, 6511], [6517, 6527], [6572, 6592],
[6600, 6607], [6619, 6655], [6679, 6687], [6741, 6783], [6794, 6799], [6810, 6822],
[6824, 6916], [6964, 6980], [6988, 6991], [7002, 7042], [7073, 7085], [7098, 7167],
[7204, 7231], [7242, 7244], [7294, 7400], [7410, 7423], [7616, 7679], [7958, 7959],
[7966, 7967], [8006, 8007], [8014, 8015], [8062, 8063], [8127, 8129], [8141, 8143],
[8148, 8149], [8156, 8159], [8173, 8177], [8189, 8303], [8306, 8307], [8314, 8318],
[8330, 8335], [8341, 8449], [8451, 8454], [8456, 8457], [8470, 8472], [8478, 8483],
[8506, 8507], [8512, 8516], [8522, 8525], [8586, 9311], [9372, 9449], [9472, 10101],
[10132, 11263], [11493, 11498], [11503, 11516], [11518, 11519], [11558, 11567],
[11622, 11630], [11632, 11647], [11671, 11679], [11743, 11822], [11824, 12292],
[12296, 12320], [12330, 12336], [12342, 12343], [12349, 12352], [12439, 12444],
[12544, 12548], [12590, 12592], [12687, 12689], [12694, 12703], [12728, 12783],
[12800, 12831], [12842, 12880], [12896, 12927], [12938, 12976], [12992, 13311],
[19894, 19967], [40908, 40959], [42125, 42191], [42238, 42239], [42509, 42511],
[42540, 42559], [42592, 42593], [42607, 42622], [42648, 42655], [42736, 42774],
[42784, 42785], [42889, 42890], [42893, 43002], [43043, 43055], [43062, 43071],
[43124, 43137], [43188, 43215], [43226, 43249], [43256, 43258], [43260, 43263],
[43302, 43311], [43335, 43359], [43389, 43395], [43443, 43470], [43482, 43519],
[43561, 43583], [43596, 43599], [43610, 43615], [43639, 43641], [43643, 43647],
[43698, 43700], [43703, 43704], [43710, 43711], [43715, 43738], [43742, 43967],
[44003, 44015], [44026, 44031], [55204, 55215], [55239, 55242], [55292, 55295],
[57344, 63743], [64046, 64047], [64110, 64111], [64218, 64255], [64263, 64274],
[64280, 64284], [64434, 64466], [64830, 64847], [64912, 64913], [64968, 65007],
[65020, 65135], [65277, 65295], [65306, 65312], [65339, 65344], [65371, 65381],
[65471, 65473], [65480, 65481], [65488, 65489], [65496, 65497]];
for (i = 0; i < ranges.length; i++) {
start = ranges[i][0];
end = ranges[i][1];
for (j = start; j <= end; j++) {
result[j] = true;
}
}
return result;
})();
function splitQuery(query) {
var result = [];
var start = -1;
for (var i = 0; i < query.length; i++) {
if (splitChars[query.charCodeAt(i)]) {
if (start !== -1) {
result.push(query.slice(start, i));
start = -1;
}
} else if (start === -1) {
start = i;
}
}
if (start !== -1) {
result.push(query.slice(start));
}
return result;
}

View File

@@ -5,22 +5,22 @@ td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
.highlight .hll { background-color: #ffffcc } .highlight .hll { background-color: #ffffcc }
.highlight { background: #f8f8f8; } .highlight { background: #f8f8f8; }
.highlight .c { color: #408080; font-style: italic } /* Comment */ .highlight .c { color: #3D7B7B; font-style: italic } /* Comment */
.highlight .err { border: 1px solid #FF0000 } /* Error */ .highlight .err { border: 1px solid #FF0000 } /* Error */
.highlight .k { color: #008000; font-weight: bold } /* Keyword */ .highlight .k { color: #008000; font-weight: bold } /* Keyword */
.highlight .o { color: #666666 } /* Operator */ .highlight .o { color: #666666 } /* Operator */
.highlight .ch { color: #408080; font-style: italic } /* Comment.Hashbang */ .highlight .ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */
.highlight .cm { color: #408080; font-style: italic } /* Comment.Multiline */ .highlight .cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */
.highlight .cp { color: #BC7A00 } /* Comment.Preproc */ .highlight .cp { color: #9C6500 } /* Comment.Preproc */
.highlight .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */ .highlight .cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */
.highlight .c1 { color: #408080; font-style: italic } /* Comment.Single */ .highlight .c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */
.highlight .cs { color: #408080; font-style: italic } /* Comment.Special */ .highlight .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */
.highlight .gd { color: #A00000 } /* Generic.Deleted */ .highlight .gd { color: #A00000 } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */ .highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .gr { color: #FF0000 } /* Generic.Error */ .highlight .gr { color: #E40000 } /* Generic.Error */
.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
.highlight .gi { color: #00A000 } /* Generic.Inserted */ .highlight .gi { color: #008400 } /* Generic.Inserted */
.highlight .go { color: #888888 } /* Generic.Output */ .highlight .go { color: #717171 } /* Generic.Output */
.highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */ .highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */ .highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ .highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
@@ -33,15 +33,15 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left:
.highlight .kt { color: #B00040 } /* Keyword.Type */ .highlight .kt { color: #B00040 } /* Keyword.Type */
.highlight .m { color: #666666 } /* Literal.Number */ .highlight .m { color: #666666 } /* Literal.Number */
.highlight .s { color: #BA2121 } /* Literal.String */ .highlight .s { color: #BA2121 } /* Literal.String */
.highlight .na { color: #7D9029 } /* Name.Attribute */ .highlight .na { color: #687822 } /* Name.Attribute */
.highlight .nb { color: #008000 } /* Name.Builtin */ .highlight .nb { color: #008000 } /* Name.Builtin */
.highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */ .highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */
.highlight .no { color: #880000 } /* Name.Constant */ .highlight .no { color: #880000 } /* Name.Constant */
.highlight .nd { color: #AA22FF } /* Name.Decorator */ .highlight .nd { color: #AA22FF } /* Name.Decorator */
.highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */ .highlight .ni { color: #717171; font-weight: bold } /* Name.Entity */
.highlight .ne { color: #D2413A; font-weight: bold } /* Name.Exception */ .highlight .ne { color: #CB3F38; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #0000FF } /* Name.Function */ .highlight .nf { color: #0000FF } /* Name.Function */
.highlight .nl { color: #A0A000 } /* Name.Label */ .highlight .nl { color: #767600 } /* Name.Label */
.highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ .highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
.highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */ .highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */
.highlight .nv { color: #19177C } /* Name.Variable */ .highlight .nv { color: #19177C } /* Name.Variable */
@@ -58,11 +58,11 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left:
.highlight .dl { color: #BA2121 } /* Literal.String.Delimiter */ .highlight .dl { color: #BA2121 } /* Literal.String.Delimiter */
.highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */ .highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
.highlight .s2 { color: #BA2121 } /* Literal.String.Double */ .highlight .s2 { color: #BA2121 } /* Literal.String.Double */
.highlight .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */ .highlight .se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */
.highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */ .highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */
.highlight .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */ .highlight .si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */
.highlight .sx { color: #008000 } /* Literal.String.Other */ .highlight .sx { color: #008000 } /* Literal.String.Other */
.highlight .sr { color: #BB6688 } /* Literal.String.Regex */ .highlight .sr { color: #A45A77 } /* Literal.String.Regex */
.highlight .s1 { color: #BA2121 } /* Literal.String.Single */ .highlight .s1 { color: #BA2121 } /* Literal.String.Single */
.highlight .ss { color: #19177C } /* Literal.String.Symbol */ .highlight .ss { color: #19177C } /* Literal.String.Symbol */
.highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */ .highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */

View File

@@ -4,22 +4,24 @@
* *
* Sphinx JavaScript utilities for the full-text search. * Sphinx JavaScript utilities for the full-text search.
* *
* :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS. * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details. * :license: BSD, see LICENSE for details.
* *
*/ */
"use strict";
if (!Scorer) { /**
/** * Simple result scoring code.
* Simple result scoring code. */
*/ if (typeof Scorer === "undefined") {
var Scorer = { var Scorer = {
// Implement the following function to further tweak the score for each result // Implement the following function to further tweak the score for each result
// The function takes a result array [filename, title, anchor, descr, score] // The function takes a result array [docname, title, anchor, descr, score, filename]
// and returns the new score. // and returns the new score.
/* /*
score: function(result) { score: result => {
return result[4]; const [docname, title, anchor, descr, score, filename] = result
return score
}, },
*/ */
@@ -28,9 +30,11 @@ if (!Scorer) {
// or matches in the last dotted part of the object name // or matches in the last dotted part of the object name
objPartialMatch: 6, objPartialMatch: 6,
// Additive scores depending on the priority of the object // Additive scores depending on the priority of the object
objPrio: {0: 15, // used to be importantResults objPrio: {
1: 5, // used to be objectResults 0: 15, // used to be importantResults
2: -5}, // used to be unimportantResults 1: 5, // used to be objectResults
2: -5, // used to be unimportantResults
},
// Used when the priority is not in the mapping. // Used when the priority is not in the mapping.
objPrioDefault: 0, objPrioDefault: 0,
@@ -39,455 +43,455 @@ if (!Scorer) {
partialTitle: 7, partialTitle: 7,
// query found in terms // query found in terms
term: 5, term: 5,
partialTerm: 2 partialTerm: 2,
}; };
} }
if (!splitQuery) { const _removeChildren = (element) => {
function splitQuery(query) { while (element && element.lastChild) element.removeChild(element.lastChild);
return query.split(/\s+/); };
/**
* See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping
*/
const _escapeRegExp = (string) =>
string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
const _displayItem = (item, highlightTerms, searchTerms) => {
const docBuilder = DOCUMENTATION_OPTIONS.BUILDER;
const docUrlRoot = DOCUMENTATION_OPTIONS.URL_ROOT;
const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX;
const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX;
const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY;
const [docName, title, anchor, descr] = item;
let listItem = document.createElement("li");
let requestUrl;
let linkUrl;
if (docBuilder === "dirhtml") {
// dirhtml builder
let dirname = docName + "/";
if (dirname.match(/\/index\/$/))
dirname = dirname.substring(0, dirname.length - 6);
else if (dirname === "index/") dirname = "";
requestUrl = docUrlRoot + dirname;
linkUrl = requestUrl;
} else {
// normal html builders
requestUrl = docUrlRoot + docName + docFileSuffix;
linkUrl = docName + docLinkSuffix;
} }
const params = new URLSearchParams();
params.set("highlight", [...highlightTerms].join(" "));
let linkEl = listItem.appendChild(document.createElement("a"));
linkEl.href = linkUrl + "?" + params.toString() + anchor;
linkEl.innerHTML = title;
if (descr)
listItem.appendChild(document.createElement("span")).innerText =
" (" + descr + ")";
else if (showSearchSummary)
fetch(requestUrl)
.then((responseData) => responseData.text())
.then((data) => {
if (data)
listItem.appendChild(
Search.makeSearchSummary(data, searchTerms, highlightTerms)
);
});
Search.output.appendChild(listItem);
};
const _finishSearch = (resultCount) => {
Search.stopPulse();
Search.title.innerText = _("Search Results");
if (!resultCount)
Search.status.innerText = Documentation.gettext(
"Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories."
);
else
Search.status.innerText = _(
`Search finished, found ${resultCount} page(s) matching the search query.`
);
};
const _displayNextItem = (
results,
resultCount,
highlightTerms,
searchTerms
) => {
// results left, load the summary and display it
// this is intended to be dynamic (don't sub resultsCount)
if (results.length) {
_displayItem(results.pop(), highlightTerms, searchTerms);
setTimeout(
() => _displayNextItem(results, resultCount, highlightTerms, searchTerms),
5
);
}
// search finished, update title and status message
else _finishSearch(resultCount);
};
/**
* Default splitQuery function. Can be overridden in ``sphinx.search`` with a
* custom function per language.
*
* The regular expression works by splitting the string on consecutive characters
* that are not Unicode letters, numbers, underscores, or emoji characters.
* This is the same as ``\W+`` in Python, preserving the surrogate pair area.
*/
if (typeof splitQuery === "undefined") {
var splitQuery = (query) => query
.split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu)
.filter(term => term) // remove remaining empty strings
} }
/** /**
* Search Module * Search Module
*/ */
var Search = { const Search = {
_index: null,
_queued_query: null,
_pulse_status: -1,
_index : null, htmlToText: (htmlString) => {
_queued_query : null, const htmlElement = document
_pulse_status : -1, .createRange()
.createContextualFragment(htmlString);
htmlToText : function(htmlString) { _removeChildren(htmlElement.querySelectorAll(".headerlink"));
var virtualDocument = document.implementation.createHTMLDocument('virtual'); const docContent = htmlElement.querySelector('[role="main"]');
var htmlElement = $(htmlString, virtualDocument); if (docContent !== undefined) return docContent.textContent;
htmlElement.find('.headerlink').remove(); console.warn(
docContent = htmlElement.find('[role=main]')[0]; "Content block not found. Sphinx search tries to obtain it via '[role=main]'. Could you check your theme or template."
if(docContent === undefined) { );
console.warn("Content block not found. Sphinx search tries to obtain it " + return "";
"via '[role=main]'. Could you check your theme or template.");
return "";
}
return docContent.textContent || docContent.innerText;
}, },
init : function() { init: () => {
var params = $.getQueryParameters(); const query = new URLSearchParams(window.location.search).get("q");
if (params.q) { document
var query = params.q[0]; .querySelectorAll('input[name="q"]')
$('input[name="q"]')[0].value = query; .forEach((el) => (el.value = query));
this.performSearch(query); if (query) Search.performSearch(query);
}
}, },
loadIndex : function(url) { loadIndex: (url) =>
$.ajax({type: "GET", url: url, data: null, (document.body.appendChild(document.createElement("script")).src = url),
dataType: "script", cache: true,
complete: function(jqxhr, textstatus) {
if (textstatus != "success") {
document.getElementById("searchindexloader").src = url;
}
}});
},
setIndex : function(index) { setIndex: (index) => {
var q; Search._index = index;
this._index = index; if (Search._queued_query !== null) {
if ((q = this._queued_query) !== null) { const query = Search._queued_query;
this._queued_query = null; Search._queued_query = null;
Search.query(q); Search.query(query);
} }
}, },
hasIndex : function() { hasIndex: () => Search._index !== null,
return this._index !== null;
},
deferQuery : function(query) { deferQuery: (query) => (Search._queued_query = query),
this._queued_query = query;
},
stopPulse : function() { stopPulse: () => (Search._pulse_status = -1),
this._pulse_status = 0;
},
startPulse : function() { startPulse: () => {
if (this._pulse_status >= 0) if (Search._pulse_status >= 0) return;
return;
function pulse() { const pulse = () => {
var i;
Search._pulse_status = (Search._pulse_status + 1) % 4; Search._pulse_status = (Search._pulse_status + 1) % 4;
var dotString = ''; Search.dots.innerText = ".".repeat(Search._pulse_status);
for (i = 0; i < Search._pulse_status; i++) if (Search._pulse_status >= 0) window.setTimeout(pulse, 500);
dotString += '.'; };
Search.dots.text(dotString);
if (Search._pulse_status > -1)
window.setTimeout(pulse, 500);
}
pulse(); pulse();
}, },
/** /**
* perform a search for something (or wait until index is loaded) * perform a search for something (or wait until index is loaded)
*/ */
performSearch : function(query) { performSearch: (query) => {
// create the required interface elements // create the required interface elements
this.out = $('#search-results'); const searchText = document.createElement("h2");
this.title = $('<h2>' + _('Searching') + '</h2>').appendTo(this.out); searchText.textContent = _("Searching");
this.dots = $('<span></span>').appendTo(this.title); const searchSummary = document.createElement("p");
this.status = $('<p class="search-summary">&nbsp;</p>').appendTo(this.out); searchSummary.classList.add("search-summary");
this.output = $('<ul class="search"/>').appendTo(this.out); searchSummary.innerText = "";
const searchList = document.createElement("ul");
searchList.classList.add("search");
$('#search-progress').text(_('Preparing search...')); const out = document.getElementById("search-results");
this.startPulse(); Search.title = out.appendChild(searchText);
Search.dots = Search.title.appendChild(document.createElement("span"));
Search.status = out.appendChild(searchSummary);
Search.output = out.appendChild(searchList);
const searchProgress = document.getElementById("search-progress");
// Some themes don't use the search progress node
if (searchProgress) {
searchProgress.innerText = _("Preparing search...");
}
Search.startPulse();
// index already loaded, the browser was quick! // index already loaded, the browser was quick!
if (this.hasIndex()) if (Search.hasIndex()) Search.query(query);
this.query(query); else Search.deferQuery(query);
else
this.deferQuery(query);
}, },
/** /**
* execute search (requires search index to be loaded) * execute search (requires search index to be loaded)
*/ */
query : function(query) { query: (query) => {
var i; // stem the search terms and add them to the correct list
const stemmer = new Stemmer();
const searchTerms = new Set();
const excludedTerms = new Set();
const highlightTerms = new Set();
const objectTerms = new Set(splitQuery(query.toLowerCase().trim()));
splitQuery(query.trim()).forEach((queryTerm) => {
const queryTermLower = queryTerm.toLowerCase();
// stem the searchterms and add them to the correct list // maybe skip this "word"
var stemmer = new Stemmer(); // stopwords array is from language_data.js
var searchterms = []; if (
var excluded = []; stopwords.indexOf(queryTermLower) !== -1 ||
var hlterms = []; queryTerm.match(/^\d+$/)
var tmp = splitQuery(query); )
var objectterms = []; return;
for (i = 0; i < tmp.length; i++) {
if (tmp[i] !== "") {
objectterms.push(tmp[i].toLowerCase());
}
if ($u.indexOf(stopwords, tmp[i].toLowerCase()) != -1 || tmp[i] === "") {
// skip this "word"
continue;
}
// stem the word // stem the word
var word = stemmer.stemWord(tmp[i].toLowerCase()); let word = stemmer.stemWord(queryTermLower);
// prevent stemmer from cutting word smaller than two chars
if(word.length < 3 && tmp[i].length >= 3) {
word = tmp[i];
}
var toAppend;
// select the correct list // select the correct list
if (word[0] == '-') { if (word[0] === "-") excludedTerms.add(word.substr(1));
toAppend = excluded;
word = word.substr(1);
}
else { else {
toAppend = searchterms; searchTerms.add(word);
hlterms.push(tmp[i].toLowerCase()); highlightTerms.add(queryTermLower);
} }
// only add if not already in the list });
if (!$u.contains(toAppend, word))
toAppend.push(word);
}
var highlightstring = '?highlight=' + $.urlencode(hlterms.join(" "));
// console.debug('SEARCH: searching for:'); // console.debug("SEARCH: searching for:");
// console.info('required: ', searchterms); // console.info("required: ", [...searchTerms]);
// console.info('excluded: ', excluded); // console.info("excluded: ", [...excludedTerms]);
// prepare search // array of [docname, title, anchor, descr, score, filename]
var terms = this._index.terms; let results = [];
var titleterms = this._index.titleterms; _removeChildren(document.getElementById("search-progress"));
// array of [filename, title, anchor, descr, score]
var results = [];
$('#search-progress').empty();
// lookup as object // lookup as object
for (i = 0; i < objectterms.length; i++) { objectTerms.forEach((term) =>
var others = [].concat(objectterms.slice(0, i), results.push(...Search.performObjectSearch(term, objectTerms))
objectterms.slice(i+1, objectterms.length)); );
results = results.concat(this.performObjectSearch(objectterms[i], others));
}
// lookup as search terms in fulltext // lookup as search terms in fulltext
results = results.concat(this.performTermsSearch(searchterms, excluded, terms, titleterms)); results.push(...Search.performTermsSearch(searchTerms, excludedTerms));
// let the scorer override scores with a custom scoring function // let the scorer override scores with a custom scoring function
if (Scorer.score) { if (Scorer.score) results.forEach((item) => (item[4] = Scorer.score(item)));
for (i = 0; i < results.length; i++)
results[i][4] = Scorer.score(results[i]);
}
// now sort the results by score (in opposite order of appearance, since the // now sort the results by score (in opposite order of appearance, since the
// display function below uses pop() to retrieve items) and then // display function below uses pop() to retrieve items) and then
// alphabetically // alphabetically
results.sort(function(a, b) { results.sort((a, b) => {
var left = a[4]; const leftScore = a[4];
var right = b[4]; const rightScore = b[4];
if (left > right) { if (leftScore === rightScore) {
return 1;
} else if (left < right) {
return -1;
} else {
// same score: sort alphabetically // same score: sort alphabetically
left = a[1].toLowerCase(); const leftTitle = a[1].toLowerCase();
right = b[1].toLowerCase(); const rightTitle = b[1].toLowerCase();
return (left > right) ? -1 : ((left < right) ? 1 : 0); if (leftTitle === rightTitle) return 0;
return leftTitle > rightTitle ? -1 : 1; // inverted is intentional
} }
return leftScore > rightScore ? 1 : -1;
}); });
// remove duplicate search results
// note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept
let seen = new Set();
results = results.reverse().reduce((acc, result) => {
let resultStr = result.slice(0, 4).concat([result[5]]).map(v => String(v)).join(',');
if (!seen.has(resultStr)) {
acc.push(result);
seen.add(resultStr);
}
return acc;
}, []);
results = results.reverse();
// for debugging // for debugging
//Search.lastresults = results.slice(); // a copy //Search.lastresults = results.slice(); // a copy
//console.info('search results:', Search.lastresults); // console.info("search results:", Search.lastresults);
// print the results // print the results
var resultCount = results.length; _displayNextItem(results, results.length, highlightTerms, searchTerms);
function displayNextItem() {
// results left, load the summary and display it
if (results.length) {
var item = results.pop();
var listItem = $('<li></li>');
var requestUrl = "";
var linkUrl = "";
if (DOCUMENTATION_OPTIONS.BUILDER === 'dirhtml') {
// dirhtml builder
var dirname = item[0] + '/';
if (dirname.match(/\/index\/$/)) {
dirname = dirname.substring(0, dirname.length-6);
} else if (dirname == 'index/') {
dirname = '';
}
requestUrl = DOCUMENTATION_OPTIONS.URL_ROOT + dirname;
linkUrl = requestUrl;
} else {
// normal html builders
requestUrl = DOCUMENTATION_OPTIONS.URL_ROOT + item[0] + DOCUMENTATION_OPTIONS.FILE_SUFFIX;
linkUrl = item[0] + DOCUMENTATION_OPTIONS.LINK_SUFFIX;
}
listItem.append($('<a/>').attr('href',
linkUrl +
highlightstring + item[2]).html(item[1]));
if (item[3]) {
listItem.append($('<span> (' + item[3] + ')</span>'));
Search.output.append(listItem);
setTimeout(function() {
displayNextItem();
}, 5);
} else if (DOCUMENTATION_OPTIONS.HAS_SOURCE) {
$.ajax({url: requestUrl,
dataType: "text",
complete: function(jqxhr, textstatus) {
var data = jqxhr.responseText;
if (data !== '' && data !== undefined) {
var summary = Search.makeSearchSummary(data, searchterms, hlterms);
if (summary) {
listItem.append(summary);
}
}
Search.output.append(listItem);
setTimeout(function() {
displayNextItem();
}, 5);
}});
} else {
// no source available, just display title
Search.output.append(listItem);
setTimeout(function() {
displayNextItem();
}, 5);
}
}
// search finished, update title and status message
else {
Search.stopPulse();
Search.title.text(_('Search Results'));
if (!resultCount)
Search.status.text(_('Your search did not match any documents. Please make sure that all words are spelled correctly and that you\'ve selected enough categories.'));
else
Search.status.text(_('Search finished, found %s page(s) matching the search query.').replace('%s', resultCount));
Search.status.fadeIn(500);
}
}
displayNextItem();
}, },
/** /**
* search for object names * search for object names
*/ */
performObjectSearch : function(object, otherterms) { performObjectSearch: (object, objectTerms) => {
var filenames = this._index.filenames; const filenames = Search._index.filenames;
var docnames = this._index.docnames; const docNames = Search._index.docnames;
var objects = this._index.objects; const objects = Search._index.objects;
var objnames = this._index.objnames; const objNames = Search._index.objnames;
var titles = this._index.titles; const titles = Search._index.titles;
var i; const results = [];
var results = [];
for (var prefix in objects) { const objectSearchCallback = (prefix, match) => {
for (var name in objects[prefix]) { const name = match[4]
var fullname = (prefix ? prefix + '.' : '') + name; const fullname = (prefix ? prefix + "." : "") + name;
var fullnameLower = fullname.toLowerCase() const fullnameLower = fullname.toLowerCase();
if (fullnameLower.indexOf(object) > -1) { if (fullnameLower.indexOf(object) < 0) return;
var score = 0;
var parts = fullnameLower.split('.');
// check for different match types: exact matches of full name or
// "last name" (i.e. last dotted part)
if (fullnameLower == object || parts[parts.length - 1] == object) {
score += Scorer.objNameMatch;
// matches in last name
} else if (parts[parts.length - 1].indexOf(object) > -1) {
score += Scorer.objPartialMatch;
}
var match = objects[prefix][name];
var objname = objnames[match[1]][2];
var title = titles[match[0]];
// If more than one term searched for, we require other words to be
// found in the name/title/description
if (otherterms.length > 0) {
var haystack = (prefix + ' ' + name + ' ' +
objname + ' ' + title).toLowerCase();
var allfound = true;
for (i = 0; i < otherterms.length; i++) {
if (haystack.indexOf(otherterms[i]) == -1) {
allfound = false;
break;
}
}
if (!allfound) {
continue;
}
}
var descr = objname + _(', in ') + title;
var anchor = match[3]; let score = 0;
if (anchor === '') const parts = fullnameLower.split(".");
anchor = fullname;
else if (anchor == '-') // check for different match types: exact matches of full name or
anchor = objnames[match[1]][1] + '-' + fullname; // "last name" (i.e. last dotted part)
// add custom score for some objects according to scorer if (fullnameLower === object || parts.slice(-1)[0] === object)
if (Scorer.objPrio.hasOwnProperty(match[2])) { score += Scorer.objNameMatch;
score += Scorer.objPrio[match[2]]; else if (parts.slice(-1)[0].indexOf(object) > -1)
} else { score += Scorer.objPartialMatch; // matches in last name
score += Scorer.objPrioDefault;
} const objName = objNames[match[1]][2];
results.push([docnames[match[0]], fullname, '#'+anchor, descr, score, filenames[match[0]]]); const title = titles[match[0]];
}
// If more than one term searched for, we require other words to be
// found in the name/title/description
const otherTerms = new Set(objectTerms);
otherTerms.delete(object);
if (otherTerms.size > 0) {
const haystack = `${prefix} ${name} ${objName} ${title}`.toLowerCase();
if (
[...otherTerms].some((otherTerm) => haystack.indexOf(otherTerm) < 0)
)
return;
} }
}
let anchor = match[3];
if (anchor === "") anchor = fullname;
else if (anchor === "-") anchor = objNames[match[1]][1] + "-" + fullname;
const descr = objName + _(", in ") + title;
// add custom score for some objects according to scorer
if (Scorer.objPrio.hasOwnProperty(match[2]))
score += Scorer.objPrio[match[2]];
else score += Scorer.objPrioDefault;
results.push([
docNames[match[0]],
fullname,
"#" + anchor,
descr,
score,
filenames[match[0]],
]);
};
Object.keys(objects).forEach((prefix) =>
objects[prefix].forEach((array) =>
objectSearchCallback(prefix, array)
)
);
return results; return results;
}, },
/**
* See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
*/
escapeRegExp : function(string) {
return string.replace(/[.*+\-?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
},
/** /**
* search for full-text terms in the index * search for full-text terms in the index
*/ */
performTermsSearch : function(searchterms, excluded, terms, titleterms) { performTermsSearch: (searchTerms, excludedTerms) => {
var docnames = this._index.docnames; // prepare search
var filenames = this._index.filenames; const terms = Search._index.terms;
var titles = this._index.titles; const titleTerms = Search._index.titleterms;
const docNames = Search._index.docnames;
const filenames = Search._index.filenames;
const titles = Search._index.titles;
var i, j, file; const scoreMap = new Map();
var fileMap = {}; const fileMap = new Map();
var scoreMap = {};
var results = [];
// perform the search on the required terms // perform the search on the required terms
for (i = 0; i < searchterms.length; i++) { searchTerms.forEach((word) => {
var word = searchterms[i]; const files = [];
var files = []; const arr = [
var _o = [ { files: terms[word], score: Scorer.term },
{files: terms[word], score: Scorer.term}, { files: titleTerms[word], score: Scorer.title },
{files: titleterms[word], score: Scorer.title}
]; ];
// add support for partial matches // add support for partial matches
if (word.length > 2) { if (word.length > 2) {
var word_regex = this.escapeRegExp(word); const escapedWord = _escapeRegExp(word);
for (var w in terms) { Object.keys(terms).forEach((term) => {
if (w.match(word_regex) && !terms[word]) { if (term.match(escapedWord) && !terms[word])
_o.push({files: terms[w], score: Scorer.partialTerm}) arr.push({ files: terms[term], score: Scorer.partialTerm });
} });
} Object.keys(titleTerms).forEach((term) => {
for (var w in titleterms) { if (term.match(escapedWord) && !titleTerms[word])
if (w.match(word_regex) && !titleterms[word]) { arr.push({ files: titleTerms[word], score: Scorer.partialTitle });
_o.push({files: titleterms[w], score: Scorer.partialTitle}) });
}
}
} }
// no match but word was a required one // no match but word was a required one
if ($u.every(_o, function(o){return o.files === undefined;})) { if (arr.every((record) => record.files === undefined)) return;
break;
}
// found search word in contents // found search word in contents
$u.each(_o, function(o) { arr.forEach((record) => {
var _files = o.files; if (record.files === undefined) return;
if (_files === undefined)
return
if (_files.length === undefined) let recordFiles = record.files;
_files = [_files]; if (recordFiles.length === undefined) recordFiles = [recordFiles];
files = files.concat(_files); files.push(...recordFiles);
// set score for the word in each file to Scorer.term // set score for the word in each file
for (j = 0; j < _files.length; j++) { recordFiles.forEach((file) => {
file = _files[j]; if (!scoreMap.has(file)) scoreMap.set(file, {});
if (!(file in scoreMap)) scoreMap.get(file)[word] = record.score;
scoreMap[file] = {}; });
scoreMap[file][word] = o.score;
}
}); });
// create the mapping // create the mapping
for (j = 0; j < files.length; j++) { files.forEach((file) => {
file = files[j]; if (fileMap.has(file) && fileMap.get(file).indexOf(word) === -1)
if (file in fileMap && fileMap[file].indexOf(word) === -1) fileMap.get(file).push(word);
fileMap[file].push(word); else fileMap.set(file, [word]);
else });
fileMap[file] = [word]; });
}
}
// now check if the files don't contain excluded terms // now check if the files don't contain excluded terms
for (file in fileMap) { const results = [];
var valid = true; for (const [file, wordList] of fileMap) {
// check if all requirements are matched // check if all requirements are matched
var filteredTermCount = // as search terms with length < 3 are discarded: ignore
searchterms.filter(function(term){return term.length > 2}).length // as search terms with length < 3 are discarded
const filteredTermCount = [...searchTerms].filter(
(term) => term.length > 2
).length;
if ( if (
fileMap[file].length != searchterms.length && wordList.length !== searchTerms.size &&
fileMap[file].length != filteredTermCount wordList.length !== filteredTermCount
) continue; )
continue;
// ensure that none of the excluded terms is in the search result // ensure that none of the excluded terms is in the search result
for (i = 0; i < excluded.length; i++) { if (
if (terms[excluded[i]] == file || [...excludedTerms].some(
titleterms[excluded[i]] == file || (term) =>
$u.contains(terms[excluded[i]] || [], file) || terms[term] === file ||
$u.contains(titleterms[excluded[i]] || [], file)) { titleTerms[term] === file ||
valid = false; (terms[term] || []).includes(file) ||
break; (titleTerms[term] || []).includes(file)
} )
} )
break;
// if we have still a valid result we can add it to the result list // select one (max) score for the file.
if (valid) { const score = Math.max(...wordList.map((w) => scoreMap.get(file)[w]));
// select one (max) score for the file. // add result to the result list
// for better ranking, we should calculate ranking by using words statistics like basic tf-idf... results.push([
var score = $u.max($u.map(fileMap[file], function(w){return scoreMap[file][w]})); docNames[file],
results.push([docnames[file], titles[file], '', null, score, filenames[file]]); titles[file],
} "",
null,
score,
filenames[file],
]);
} }
return results; return results;
}, },
@@ -495,34 +499,33 @@ var Search = {
/** /**
* helper function to return a node containing the * helper function to return a node containing the
* search summary for a given text. keywords is a list * search summary for a given text. keywords is a list
* of stemmed words, hlwords is the list of normal, unstemmed * of stemmed words, highlightWords is the list of normal, unstemmed
* words. the first one is used to find the occurrence, the * words. the first one is used to find the occurrence, the
* latter for highlighting it. * latter for highlighting it.
*/ */
makeSearchSummary : function(htmlText, keywords, hlwords) { makeSearchSummary: (htmlText, keywords, highlightWords) => {
var text = Search.htmlToText(htmlText); const text = Search.htmlToText(htmlText).toLowerCase();
if (text == "") { if (text === "") return null;
return null;
} const actualStartPosition = [...keywords]
var textLower = text.toLowerCase(); .map((k) => text.indexOf(k.toLowerCase()))
var start = 0; .filter((i) => i > -1)
$.each(keywords, function() { .slice(-1)[0];
var i = textLower.indexOf(this.toLowerCase()); const startWithContext = Math.max(actualStartPosition - 120, 0);
if (i > -1)
start = i; const top = startWithContext === 0 ? "" : "...";
}); const tail = startWithContext + 240 < text.length ? "..." : "";
start = Math.max(start - 120, 0);
var excerpt = ((start > 0) ? '...' : '') + let summary = document.createElement("div");
$.trim(text.substr(start, 240)) + summary.classList.add("context");
((start + 240 - text.length) ? '...' : ''); summary.innerText = top + text.substr(startWithContext, 240).trim() + tail;
var rv = $('<p class="context"></p>').text(excerpt);
$.each(hlwords, function() { highlightWords.forEach((highlightWord) =>
rv = rv.highlightText(this, 'highlighted'); _highlightText(summary, highlightWord, "highlighted")
}); );
return rv;
} return summary;
},
}; };
$(document).ready(function() { _ready(Search.init);
Search.init();
});

View File

@@ -1,7 +1,8 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" > <html class="writer-html5" lang="en" >
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>cpl add &mdash; Common Python Library documentation</title> <title>cpl add &mdash; Common Python Library documentation</title>
<link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -13,6 +14,7 @@
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script> <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script> <script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script> <script src="_static/underscore.js"></script>
<script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
<script src="_static/doctools.js"></script> <script src="_static/doctools.js"></script>
<script src="_static/js/theme.js"></script> <script src="_static/js/theme.js"></script>
<link rel="index" title="Index" href="genindex.html" /> <link rel="index" title="Index" href="genindex.html" />
@@ -39,12 +41,14 @@
<ul class="current"> <ul class="current">
<li class="toctree-l1"><a class="reference internal" href="introduction.html">Introduction to the CPL Docs</a></li> <li class="toctree-l1"><a class="reference internal" href="introduction.html">Introduction to the CPL Docs</a></li>
<li class="toctree-l1"><a class="reference internal" href="getting_started.html">Getting started</a></li> <li class="toctree-l1"><a class="reference internal" href="getting_started.html">Getting started</a></li>
<li class="toctree-l1"><a class="reference internal" href="contributing.html">Contributing to CPL</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="cpl_cli.html">CLI Reference</a><ul class="current"> <li class="toctree-l1 current"><a class="reference internal" href="cpl_cli.html">CLI Reference</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="cli.overview.html">CLI Overview and Command Reference</a></li> <li class="toctree-l2"><a class="reference internal" href="cli.overview.html">CLI Overview and Command Reference</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">cpl add</a><ul> <li class="toctree-l2 current"><a class="current reference internal" href="#">cpl add</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#contents">Contents</a></li> <li class="toctree-l3"><a class="reference internal" href="#contents">Contents</a></li>
<li class="toctree-l3"><a class="reference internal" href="#description">Description</a></li> <li class="toctree-l3"><a class="reference internal" href="#description">Description</a></li>
<li class="toctree-l3"><a class="reference internal" href="#arguments">Arguments</a></li> <li class="toctree-l3"><a class="reference internal" href="#arguments">Arguments</a></li>
<li class="toctree-l3"><a class="reference internal" href="#flags">Flags</a></li>
</ul> </ul>
</li> </li>
<li class="toctree-l2"><a class="reference internal" href="cli.build.html">cpl build</a></li> <li class="toctree-l2"><a class="reference internal" href="cli.build.html">cpl build</a></li>
@@ -89,46 +93,62 @@
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody"> <div itemprop="articleBody">
<div class="tex2jax_ignore mathjax_ignore section" id="cpl-add"> <section id="cpl-add">
<h1>cpl add<a class="headerlink" href="#cpl-add" title="Permalink to this headline"></a></h1> <h1>cpl add<a class="headerlink" href="#cpl-add" title="Permalink to this heading"></a></h1>
<div class="section" id="contents"> <section id="contents">
<h2>Contents<a class="headerlink" href="#contents" title="Permalink to this headline"></a></h2> <h2>Contents<a class="headerlink" href="#contents" title="Permalink to this heading"></a></h2>
<ul class="simple"> <ul class="simple">
<li><p><a class="reference external" href="#description">Description</a></p></li> <li><p><span class="xref myst">Description</span></p></li>
<li><p><a class="reference external" href="#arguments">Arguments</a></p></li> <li><p><span class="xref myst">Arguments</span></p></li>
<li><p><span class="xref myst">Flags</span></p></li>
</ul> </ul>
<p>Removes a project from workspace.</p> <p>Removes a project from workspace.</p>
<p>cpl <strong>add</strong> <em>&lt;source-project&gt;</em> <em>&lt;target-project&gt;</em> <br> <p>cpl <strong>add</strong> <em>&lt;source-project&gt;</em> <em>&lt;target-project&gt;</em> <br>
cpl <strong>a</strong> <em>&lt;source-project&gt;</em> <em>&lt;target-project&gt;</em> <br> cpl <strong>a</strong> <em>&lt;source-project&gt;</em> <em>&lt;target-project&gt;</em> <br>
cpl <strong>A</strong> <em>&lt;source-project&gt;</em> <em>&lt;target-project&gt;</em></p> cpl <strong>A</strong> <em>&lt;source-project&gt;</em> <em>&lt;target-project&gt;</em></p>
</div> </section>
<div class="section" id="description"> <section id="description">
<h2>Description<a class="headerlink" href="#description" title="Permalink to this headline"></a></h2> <h2>Description<a class="headerlink" href="#description" title="Permalink to this heading"></a></h2>
<p>Adds a project reference to given project.</p> <p>Adds a project reference to given project.</p>
<p>If you call the command in a CPL workspace, you can use the project names. Otherwise the paths of the projects must be specified.</p> <p>If you call the command in a CPL workspace, you can use the project names. Otherwise the paths of the projects must be specified.</p>
</div> </section>
<div class="section" id="arguments"> <section id="arguments">
<h2>Arguments<a class="headerlink" href="#arguments" title="Permalink to this headline"></a></h2> <h2>Arguments<a class="headerlink" href="#arguments" title="Permalink to this heading"></a></h2>
<table class="colwidths-auto docutils align-default"> <table class="colwidths-auto docutils align-default">
<thead> <thead>
<tr class="row-odd"><th class="head"><p>Argument</p></th> <tr class="row-odd"><th class="head"><p>Argument</p></th>
<th class="text-align:center head"><p>Description</p></th> <th class="text-center head"><p>Description</p></th>
<th class="text-align:center head"><p>Value type</p></th> <th class="text-center head"><p>Value type</p></th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">&lt;source-project&gt;</span></code></p></td> <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">&lt;source-project&gt;</span></code></p></td>
<td class="text-align:center"><p>Name of the project to which the reference has to be added</p></td> <td class="text-center"><p>Name of the project to which the reference has to be added</p></td>
<td class="text-align:center"><p><code class="docutils literal notranslate"><span class="pre">str</span></code></p></td> <td class="text-center"><p><code class="docutils literal notranslate"><span class="pre">str</span></code></p></td>
</tr> </tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">&lt;target-project&gt;</span></code></p></td> <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">&lt;target-project&gt;</span></code></p></td>
<td class="text-align:center"><p>Name of the project to be referenced</p></td> <td class="text-center"><p>Name of the project to be referenced</p></td>
<td class="text-align:center"><p><code class="docutils literal notranslate"><span class="pre">str</span></code></p></td> <td class="text-center"><p><code class="docutils literal notranslate"><span class="pre">str</span></code></p></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</div> </section>
</div> <section id="flags">
<h2>Flags<a class="headerlink" href="#flags" title="Permalink to this heading"></a></h2>
<table class="colwidths-auto docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>Argument</p></th>
<th class="text-center head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">--simulate</span></code></p></td>
<td class="text-center"><p>Specifies whether the command is simulated</p></td>
</tr>
</tbody>
</table>
</section>
</section>
</div> </div>

View File

@@ -1,7 +1,8 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" > <html class="writer-html5" lang="en" >
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>cpl build &mdash; Common Python Library documentation</title> <title>cpl build &mdash; Common Python Library documentation</title>
<link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -13,6 +14,7 @@
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script> <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script> <script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script> <script src="_static/underscore.js"></script>
<script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
<script src="_static/doctools.js"></script> <script src="_static/doctools.js"></script>
<script src="_static/js/theme.js"></script> <script src="_static/js/theme.js"></script>
<link rel="index" title="Index" href="genindex.html" /> <link rel="index" title="Index" href="genindex.html" />
@@ -39,6 +41,7 @@
<ul class="current"> <ul class="current">
<li class="toctree-l1"><a class="reference internal" href="introduction.html">Introduction to the CPL Docs</a></li> <li class="toctree-l1"><a class="reference internal" href="introduction.html">Introduction to the CPL Docs</a></li>
<li class="toctree-l1"><a class="reference internal" href="getting_started.html">Getting started</a></li> <li class="toctree-l1"><a class="reference internal" href="getting_started.html">Getting started</a></li>
<li class="toctree-l1"><a class="reference internal" href="contributing.html">Contributing to CPL</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="cpl_cli.html">CLI Reference</a><ul class="current"> <li class="toctree-l1 current"><a class="reference internal" href="cpl_cli.html">CLI Reference</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="cli.overview.html">CLI Overview and Command Reference</a></li> <li class="toctree-l2"><a class="reference internal" href="cli.overview.html">CLI Overview and Command Reference</a></li>
<li class="toctree-l2"><a class="reference internal" href="cli.add.html">cpl add</a></li> <li class="toctree-l2"><a class="reference internal" href="cli.add.html">cpl add</a></li>
@@ -88,21 +91,21 @@
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody"> <div itemprop="articleBody">
<div class="tex2jax_ignore mathjax_ignore section" id="cpl-build"> <section id="cpl-build">
<h1>cpl build<a class="headerlink" href="#cpl-build" title="Permalink to this headline"></a></h1> <h1>cpl build<a class="headerlink" href="#cpl-build" title="Permalink to this heading"></a></h1>
<div class="section" id="contents"> <section id="contents">
<h2>Contents<a class="headerlink" href="#contents" title="Permalink to this headline"></a></h2> <h2>Contents<a class="headerlink" href="#contents" title="Permalink to this heading"></a></h2>
<ul class="simple"> <ul class="simple">
<li><p><a class="reference external" href="#description">Description</a></p></li> <li><p><span class="xref myst">Description</span></p></li>
</ul> </ul>
<!-- - [Arguments](#arguments) --> <!-- - [Arguments](#arguments) -->
<p>Copies an python app into an output directory named build/ at the given output path. Must be executed within a CPL workspace or project directory</p> <p>Copies an python app into an output directory named build/ at the given output path. Must be executed within a CPL workspace or project directory</p>
<p>cpl <strong>build</strong> <br> <p>cpl <strong>build</strong> <br>
cpl <strong>b</strong> <br> cpl <strong>b</strong> <br>
cpl <strong>B</strong></p> cpl <strong>B</strong></p>
</div> </section>
<div class="section" id="description"> <section id="description">
<h2>Description<a class="headerlink" href="#description" title="Permalink to this headline"></a></h2> <h2>Description<a class="headerlink" href="#description" title="Permalink to this heading"></a></h2>
<p>The command can be used to build a project of type “console” or “library”.</p> <p>The command can be used to build a project of type “console” or “library”.</p>
<p>The build command copies all included source files to the output directory. You can run the source files in the output directory directly.</p> <p>The build command copies all included source files to the output directory. You can run the source files in the output directory directly.</p>
<p>The command is used to prepare the source files for the publish command or to copy them to an target for execution.</p> <p>The command is used to prepare the source files for the publish command or to copy them to an target for execution.</p>
@@ -111,8 +114,8 @@ cpl <strong>B</strong></p>
| Argument | Description | Value type | | Argument | Description | Value type |
| ------------- |:-------------:|:----------------:| | ------------- |:-------------:|:----------------:|
| ```<project>``` | The name of the project to build. Can be an console or a library. | ```str``` --> | ```<project>``` | The name of the project to build. Can be an console or a library. | ```str``` -->
</div> </section>
</div> </section>
</div> </div>

View File

@@ -1,7 +1,8 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" > <html class="writer-html5" lang="en" >
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>cpl generate &mdash; Common Python Library documentation</title> <title>cpl generate &mdash; Common Python Library documentation</title>
<link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -13,6 +14,7 @@
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script> <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script> <script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script> <script src="_static/underscore.js"></script>
<script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
<script src="_static/doctools.js"></script> <script src="_static/doctools.js"></script>
<script src="_static/js/theme.js"></script> <script src="_static/js/theme.js"></script>
<link rel="index" title="Index" href="genindex.html" /> <link rel="index" title="Index" href="genindex.html" />
@@ -39,6 +41,7 @@
<ul class="current"> <ul class="current">
<li class="toctree-l1"><a class="reference internal" href="introduction.html">Introduction to the CPL Docs</a></li> <li class="toctree-l1"><a class="reference internal" href="introduction.html">Introduction to the CPL Docs</a></li>
<li class="toctree-l1"><a class="reference internal" href="getting_started.html">Getting started</a></li> <li class="toctree-l1"><a class="reference internal" href="getting_started.html">Getting started</a></li>
<li class="toctree-l1"><a class="reference internal" href="contributing.html">Contributing to CPL</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="cpl_cli.html">CLI Reference</a><ul class="current"> <li class="toctree-l1 current"><a class="reference internal" href="cpl_cli.html">CLI Reference</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="cli.overview.html">CLI Overview and Command Reference</a></li> <li class="toctree-l2"><a class="reference internal" href="cli.overview.html">CLI Overview and Command Reference</a></li>
<li class="toctree-l2"><a class="reference internal" href="cli.add.html">cpl add</a></li> <li class="toctree-l2"><a class="reference internal" href="cli.add.html">cpl add</a></li>
@@ -90,83 +93,95 @@
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody"> <div itemprop="articleBody">
<div class="tex2jax_ignore mathjax_ignore section" id="cpl-generate"> <section id="cpl-generate">
<h1>cpl generate<a class="headerlink" href="#cpl-generate" title="Permalink to this headline"></a></h1> <h1>cpl generate<a class="headerlink" href="#cpl-generate" title="Permalink to this heading"></a></h1>
<div class="section" id="contents"> <section id="contents">
<h2>Contents<a class="headerlink" href="#contents" title="Permalink to this headline"></a></h2> <h2>Contents<a class="headerlink" href="#contents" title="Permalink to this heading"></a></h2>
<ul class="simple"> <ul class="simple">
<li><p><a class="reference external" href="#description">Description</a></p></li> <li><p><span class="xref myst">Description</span></p></li>
<li><p><a class="reference external" href="#arguments">Arguments</a></p></li> <li><p><span class="xref myst">Arguments</span></p></li>
<li><p><a class="reference external" href="#schematics">Schematics</a></p></li> <li><p><span class="xref myst">Schematics</span></p></li>
</ul> </ul>
<p>Generate a file based on schematic.</p> <p>Generate a file based on schematic.</p>
<p>cpl <strong>generate</strong> <em>&lt;schematic&gt;</em> <em>&lt;name&gt;</em> <br> <p>cpl <strong>generate</strong> <em>&lt;schematic&gt;</em> <em>&lt;name&gt;</em> <br>
cpl <strong>g</strong> <em>&lt;schematic&gt;</em> <em>&lt;name&gt;</em> <br> cpl <strong>g</strong> <em>&lt;schematic&gt;</em> <em>&lt;name&gt;</em> <br>
cpl <strong>G</strong> <em>&lt;schematic&gt;</em> <em>&lt;name&gt;</em></p> cpl <strong>G</strong> <em>&lt;schematic&gt;</em> <em>&lt;name&gt;</em></p>
</div> </section>
<div class="section" id="description"> <section id="description">
<h2>Description<a class="headerlink" href="#description" title="Permalink to this headline"></a></h2> <h2>Description<a class="headerlink" href="#description" title="Permalink to this heading"></a></h2>
<p>Generates files based on a schematic.</p> <p>Generates files based on a schematic.</p>
</div> </section>
<div class="section" id="arguments"> <section id="arguments">
<h2>Arguments<a class="headerlink" href="#arguments" title="Permalink to this headline"></a></h2> <h2>Arguments<a class="headerlink" href="#arguments" title="Permalink to this heading"></a></h2>
<table class="colwidths-auto docutils align-default"> <table class="colwidths-auto docutils align-default">
<thead> <thead>
<tr class="row-odd"><th class="head"><p>Argument</p></th> <tr class="row-odd"><th class="head"><p>Argument</p></th>
<th class="text-align:center head"><p>Description</p></th> <th class="text-center head"><p>Description</p></th>
<th class="text-align:center head"><p>Value type</p></th> <th class="text-center head"><p>Value type</p></th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">&lt;schematic&gt;</span></code></p></td> <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">&lt;schematic&gt;</span></code></p></td>
<td class="text-align:center"><p>The schematic to generate.</p></td> <td class="text-center"><p>The schematic to generate.</p></td>
<td class="text-align:center"><p><code class="docutils literal notranslate"><span class="pre">str</span></code></p></td> <td class="text-center"><p><code class="docutils literal notranslate"><span class="pre">str</span></code></p></td>
</tr> </tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">&lt;name&gt;</span></code></p></td> <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">&lt;name&gt;</span></code></p></td>
<td class="text-align:center"><p>The name of the generated file.</p></td> <td class="text-center"><p>The name of the generated file.</p></td>
<td class="text-align:center"><p><code class="docutils literal notranslate"><span class="pre">str</span></code></p></td> <td class="text-center"><p><code class="docutils literal notranslate"><span class="pre">str</span></code></p></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</div> </section>
<div class="section" id="schematics"> <section id="schematics">
<h2>Schematics<a class="headerlink" href="#schematics" title="Permalink to this headline"></a></h2> <h2>Schematics<a class="headerlink" href="#schematics" title="Permalink to this heading"></a></h2>
<table class="colwidths-auto docutils align-default"> <table class="colwidths-auto docutils align-default">
<thead> <thead>
<tr class="row-odd"><th class="head"><p>Schematic</p></th> <tr class="row-odd"><th class="head"><p>Schematic</p></th>
<th class="text-align:center head"><p>Description</p></th> <th class="text-center head"><p>Description</p></th>
<th class="text-align:center head"><p>Arguments</p></th> <th class="text-center head"><p>Arguments</p></th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">abc</span></code></p></td> <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">abc</span></code></p></td>
<td class="text-align:center"><p>Abstract base class</p></td> <td class="text-center"><p>Abstract base class</p></td>
<td class="text-align:center"><p><code class="docutils literal notranslate"><span class="pre">&lt;name&gt;</span></code></p></td> <td class="text-center"><p><code class="docutils literal notranslate"><span class="pre">&lt;name&gt;</span></code></p></td>
</tr> </tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">class</span></code></p></td> <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">class</span></code></p></td>
<td class="text-align:center"><p>Class</p></td> <td class="text-center"><p>Class</p></td>
<td class="text-align:center"><p><code class="docutils literal notranslate"><span class="pre">&lt;name&gt;</span></code></p></td> <td class="text-center"><p><code class="docutils literal notranslate"><span class="pre">&lt;name&gt;</span></code></p></td>
</tr> </tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">enum</span></code></p></td> <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">enum</span></code></p></td>
<td class="text-align:center"><p>Enum class</p></td> <td class="text-center"><p>Enum class</p></td>
<td class="text-align:center"><p><code class="docutils literal notranslate"><span class="pre">&lt;name&gt;</span></code></p></td> <td class="text-center"><p><code class="docutils literal notranslate"><span class="pre">&lt;name&gt;</span></code></p></td>
</tr> </tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">service</span></code></p></td> <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">pipe</span></code></p></td>
<td class="text-align:center"><p>Service class</p></td> <td class="text-center"><p>Pipe class</p></td>
<td class="text-align:center"><p><code class="docutils literal notranslate"><span class="pre">&lt;name&gt;</span></code></p></td> <td class="text-center"><p><code class="docutils literal notranslate"><span class="pre">&lt;name&gt;</span></code></p></td>
</tr> </tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">settings</span></code></p></td> <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">service</span></code></p></td>
<td class="text-align:center"><p><a class="reference internal" href="cpl_core.configuration.html"><span class="doc std std-doc">Configmodel</span></a></p></td> <td class="text-center"><p>Service class</p></td>
<td class="text-align:center"><p><code class="docutils literal notranslate"><span class="pre">&lt;name&gt;</span></code></p></td> <td class="text-center"><p><code class="docutils literal notranslate"><span class="pre">&lt;name&gt;</span></code></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">settings</span></code></p></td>
<td class="text-center"><p><a class="reference internal" href="cpl_core.configuration.html"><span class="doc std std-doc">Configmodel</span></a></p></td>
<td class="text-center"><p><code class="docutils literal notranslate"><span class="pre">&lt;name&gt;</span></code></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">test</span></code></p></td>
<td class="text-center"><p>Test class</p></td>
<td class="text-center"><p><code class="docutils literal notranslate"><span class="pre">&lt;name&gt;</span></code></p></td>
</tr> </tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">thread</span></code></p></td> <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">thread</span></code></p></td>
<td class="text-align:center"><p>Thread class</p></td> <td class="text-center"><p>Thread class</p></td>
<td class="text-align:center"><p><code class="docutils literal notranslate"><span class="pre">&lt;name&gt;</span></code></p></td> <td class="text-center"><p><code class="docutils literal notranslate"><span class="pre">&lt;name&gt;</span></code></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">validator</span></code></p></td>
<td class="text-center"><p>Validator class</p></td>
<td class="text-center"><p><code class="docutils literal notranslate"><span class="pre">&lt;name&gt;</span></code></p></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</div> </section>
</div> </section>
</div> </div>

View File

@@ -1,7 +1,8 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" > <html class="writer-html5" lang="en" >
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>cpl help &mdash; Common Python Library documentation</title> <title>cpl help &mdash; Common Python Library documentation</title>
<link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -13,6 +14,7 @@
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script> <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script> <script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script> <script src="_static/underscore.js"></script>
<script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
<script src="_static/doctools.js"></script> <script src="_static/doctools.js"></script>
<script src="_static/js/theme.js"></script> <script src="_static/js/theme.js"></script>
<link rel="index" title="Index" href="genindex.html" /> <link rel="index" title="Index" href="genindex.html" />
@@ -39,12 +41,14 @@
<ul class="current"> <ul class="current">
<li class="toctree-l1"><a class="reference internal" href="introduction.html">Introduction to the CPL Docs</a></li> <li class="toctree-l1"><a class="reference internal" href="introduction.html">Introduction to the CPL Docs</a></li>
<li class="toctree-l1"><a class="reference internal" href="getting_started.html">Getting started</a></li> <li class="toctree-l1"><a class="reference internal" href="getting_started.html">Getting started</a></li>
<li class="toctree-l1"><a class="reference internal" href="contributing.html">Contributing to CPL</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="cpl_cli.html">CLI Reference</a><ul class="current"> <li class="toctree-l1 current"><a class="reference internal" href="cpl_cli.html">CLI Reference</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="cli.overview.html">CLI Overview and Command Reference</a></li> <li class="toctree-l2"><a class="reference internal" href="cli.overview.html">CLI Overview and Command Reference</a></li>
<li class="toctree-l2"><a class="reference internal" href="cli.add.html">cpl add</a></li> <li class="toctree-l2"><a class="reference internal" href="cli.add.html">cpl add</a></li>
<li class="toctree-l2"><a class="reference internal" href="cli.build.html">cpl build</a></li> <li class="toctree-l2"><a class="reference internal" href="cli.build.html">cpl build</a></li>
<li class="toctree-l2"><a class="reference internal" href="cli.generate.html">cpl generate</a></li> <li class="toctree-l2"><a class="reference internal" href="cli.generate.html">cpl generate</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">cpl help</a><ul> <li class="toctree-l2 current"><a class="current reference internal" href="#">cpl help</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#contents">Contents</a></li>
<li class="toctree-l3"><a class="reference internal" href="#description">Description</a></li> <li class="toctree-l3"><a class="reference internal" href="#description">Description</a></li>
<li class="toctree-l3"><a class="reference internal" href="#arguments">Arguments</a></li> <li class="toctree-l3"><a class="reference internal" href="#arguments">Arguments</a></li>
</ul> </ul>
@@ -88,38 +92,41 @@
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody"> <div itemprop="articleBody">
<div class="tex2jax_ignore mathjax_ignore section" id="cpl-help"> <section id="cpl-help">
<h1>cpl help<a class="headerlink" href="#cpl-help" title="Permalink to this headline"></a></h1> <h1>cpl help<a class="headerlink" href="#cpl-help" title="Permalink to this heading"></a></h1>
<!-- ## Contents <section id="contents">
<h2>Contents<a class="headerlink" href="#contents" title="Permalink to this heading"></a></h2>
- [Description](#description) --> <ul class="simple">
<!-- - [Arguments](#arguments) --> <li><p><span class="xref myst">Description</span></p></li>
<li><p><span class="xref myst">Arguments</span></p></li>
</ul>
<p>Lists available command and their short descriptions.</p> <p>Lists available command and their short descriptions.</p>
<p>cpl <strong>help</strong> <em>&lt;command&gt;</em> <br> <p>cpl <strong>help</strong> <em>&lt;command&gt;</em> <br>
cpl <strong>h</strong> <em>&lt;command&gt;</em> <br> cpl <strong>h</strong> <em>&lt;command&gt;</em> <br>
cpl <strong>H</strong> <em>&lt;command&gt;</em></p> cpl <strong>H</strong> <em>&lt;command&gt;</em></p>
<div class="section" id="description"> </section>
<h2>Description<a class="headerlink" href="#description" title="Permalink to this headline"></a></h2> <section id="description">
<h2>Description<a class="headerlink" href="#description" title="Permalink to this heading"></a></h2>
<p>Lists available command and their short descriptions.</p> <p>Lists available command and their short descriptions.</p>
</div> </section>
<div class="section" id="arguments"> <section id="arguments">
<h2>Arguments<a class="headerlink" href="#arguments" title="Permalink to this headline"></a></h2> <h2>Arguments<a class="headerlink" href="#arguments" title="Permalink to this heading"></a></h2>
<table class="colwidths-auto docutils align-default"> <table class="colwidths-auto docutils align-default">
<thead> <thead>
<tr class="row-odd"><th class="head"><p>Argument</p></th> <tr class="row-odd"><th class="head"><p>Argument</p></th>
<th class="text-align:center head"><p>Description</p></th> <th class="text-center head"><p>Description</p></th>
<th class="text-align:center head"><p>Value type</p></th> <th class="text-center head"><p>Value type</p></th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">&lt;command&gt;</span></code></p></td> <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">&lt;command&gt;</span></code></p></td>
<td class="text-align:center"><p>Shows a help message for this command in the console.</p></td> <td class="text-center"><p>Shows a help message for this command in the console.</p></td>
<td class="text-align:center"><p><code class="docutils literal notranslate"><span class="pre">str</span></code></p></td> <td class="text-center"><p><code class="docutils literal notranslate"><span class="pre">str</span></code></p></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</div> </section>
</div> </section>
</div> </div>

View File

@@ -1,7 +1,8 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" > <html class="writer-html5" lang="en" >
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>cpl install &mdash; Common Python Library documentation</title> <title>cpl install &mdash; Common Python Library documentation</title>
<link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -13,6 +14,7 @@
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script> <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script> <script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script> <script src="_static/underscore.js"></script>
<script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
<script src="_static/doctools.js"></script> <script src="_static/doctools.js"></script>
<script src="_static/js/theme.js"></script> <script src="_static/js/theme.js"></script>
<link rel="index" title="Index" href="genindex.html" /> <link rel="index" title="Index" href="genindex.html" />
@@ -39,6 +41,7 @@
<ul class="current"> <ul class="current">
<li class="toctree-l1"><a class="reference internal" href="introduction.html">Introduction to the CPL Docs</a></li> <li class="toctree-l1"><a class="reference internal" href="introduction.html">Introduction to the CPL Docs</a></li>
<li class="toctree-l1"><a class="reference internal" href="getting_started.html">Getting started</a></li> <li class="toctree-l1"><a class="reference internal" href="getting_started.html">Getting started</a></li>
<li class="toctree-l1"><a class="reference internal" href="contributing.html">Contributing to CPL</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="cpl_cli.html">CLI Reference</a><ul class="current"> <li class="toctree-l1 current"><a class="reference internal" href="cpl_cli.html">CLI Reference</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="cli.overview.html">CLI Overview and Command Reference</a></li> <li class="toctree-l2"><a class="reference internal" href="cli.overview.html">CLI Overview and Command Reference</a></li>
<li class="toctree-l2"><a class="reference internal" href="cli.add.html">cpl add</a></li> <li class="toctree-l2"><a class="reference internal" href="cli.add.html">cpl add</a></li>
@@ -49,6 +52,7 @@
<li class="toctree-l3"><a class="reference internal" href="#contents">Contents</a></li> <li class="toctree-l3"><a class="reference internal" href="#contents">Contents</a></li>
<li class="toctree-l3"><a class="reference internal" href="#description">Description</a></li> <li class="toctree-l3"><a class="reference internal" href="#description">Description</a></li>
<li class="toctree-l3"><a class="reference internal" href="#arguments">Arguments</a></li> <li class="toctree-l3"><a class="reference internal" href="#arguments">Arguments</a></li>
<li class="toctree-l3"><a class="reference internal" href="#flags">Flags</a></li>
</ul> </ul>
</li> </li>
<li class="toctree-l2"><a class="reference internal" href="cli.new.html">cpl new</a></li> <li class="toctree-l2"><a class="reference internal" href="cli.new.html">cpl new</a></li>
@@ -89,42 +93,63 @@
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody"> <div itemprop="articleBody">
<div class="tex2jax_ignore mathjax_ignore section" id="cpl-install"> <section id="cpl-install">
<h1>cpl install<a class="headerlink" href="#cpl-install" title="Permalink to this headline"></a></h1> <h1>cpl install<a class="headerlink" href="#cpl-install" title="Permalink to this heading"></a></h1>
<div class="section" id="contents"> <section id="contents">
<h2>Contents<a class="headerlink" href="#contents" title="Permalink to this headline"></a></h2> <h2>Contents<a class="headerlink" href="#contents" title="Permalink to this heading"></a></h2>
<ul class="simple"> <ul class="simple">
<li><p><a class="reference external" href="#description">Description</a></p></li> <li><p><span class="xref myst">Description</span></p></li>
<li><p><a class="reference external" href="#arguments">Arguments</a></p></li> <li><p><span class="xref myst">Arguments</span></p></li>
</ul> </ul>
<p>Installs given package via pip</p> <p>Installs given package via pip</p>
<p>cpl <strong>install</strong> <em>&lt;package&gt;</em> <br> <p>cpl <strong>install</strong> <em>&lt;package&gt;</em> <br>
cpl <strong>i</strong> <em>&lt;package&gt;</em> <br> cpl <strong>i</strong> <em>&lt;package&gt;</em> <br>
cpl <strong>I</strong> <em>&lt;package&gt;</em></p> cpl <strong>I</strong> <em>&lt;package&gt;</em></p>
</div> </section>
<div class="section" id="description"> <section id="description">
<h2>Description<a class="headerlink" href="#description" title="Permalink to this headline"></a></h2> <h2>Description<a class="headerlink" href="#description" title="Permalink to this heading"></a></h2>
<p>Install given package to project via pip. <p>Install given package to project via pip.
Without given package it will install the depedencies of the CPL project your in.</p> Without given package it will install the depedencies of the CPL project your in.</p>
</div> </section>
<div class="section" id="arguments"> <section id="arguments">
<h2>Arguments<a class="headerlink" href="#arguments" title="Permalink to this headline"></a></h2> <h2>Arguments<a class="headerlink" href="#arguments" title="Permalink to this heading"></a></h2>
<table class="colwidths-auto docutils align-default"> <table class="colwidths-auto docutils align-default">
<thead> <thead>
<tr class="row-odd"><th class="head"><p>Argument</p></th> <tr class="row-odd"><th class="head"><p>Argument</p></th>
<th class="text-align:center head"><p>Description</p></th> <th class="text-center head"><p>Description</p></th>
<th class="text-align:center head"><p>Value type</p></th> <th class="text-center head"><p>Value type</p></th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">&lt;package&gt;</span></code></p></td> <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">&lt;package&gt;</span></code></p></td>
<td class="text-align:center"><p>The package to install</p></td> <td class="text-center"><p>The package to install</p></td>
<td class="text-align:center"><p><code class="docutils literal notranslate"><span class="pre">str</span></code></p></td> <td class="text-center"><p><code class="docutils literal notranslate"><span class="pre">str</span></code></p></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</div> </section>
</div> <section id="flags">
<h2>Flags<a class="headerlink" href="#flags" title="Permalink to this heading"></a></h2>
<table class="colwidths-auto docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>Argument</p></th>
<th class="text-center head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">--dev</span></code></p></td>
<td class="text-center"><p>Specifies whether the command is in development mode</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">--virtual</span></code></p></td>
<td class="text-center"><p>Specifies whether the command is virtual mode</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">--simulate</span></code></p></td>
<td class="text-center"><p>Specifies whether the command is simulated</p></td>
</tr>
</tbody>
</table>
</section>
</section>
</div> </div>

View File

@@ -1,7 +1,8 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" > <html class="writer-html5" lang="en" >
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>cpl new &mdash; Common Python Library documentation</title> <title>cpl new &mdash; Common Python Library documentation</title>
<link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -13,6 +14,7 @@
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script> <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script> <script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script> <script src="_static/underscore.js"></script>
<script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
<script src="_static/doctools.js"></script> <script src="_static/doctools.js"></script>
<script src="_static/js/theme.js"></script> <script src="_static/js/theme.js"></script>
<link rel="index" title="Index" href="genindex.html" /> <link rel="index" title="Index" href="genindex.html" />
@@ -39,6 +41,7 @@
<ul class="current"> <ul class="current">
<li class="toctree-l1"><a class="reference internal" href="introduction.html">Introduction to the CPL Docs</a></li> <li class="toctree-l1"><a class="reference internal" href="introduction.html">Introduction to the CPL Docs</a></li>
<li class="toctree-l1"><a class="reference internal" href="getting_started.html">Getting started</a></li> <li class="toctree-l1"><a class="reference internal" href="getting_started.html">Getting started</a></li>
<li class="toctree-l1"><a class="reference internal" href="contributing.html">Contributing to CPL</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="cpl_cli.html">CLI Reference</a><ul class="current"> <li class="toctree-l1 current"><a class="reference internal" href="cpl_cli.html">CLI Reference</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="cli.overview.html">CLI Overview and Command Reference</a></li> <li class="toctree-l2"><a class="reference internal" href="cli.overview.html">CLI Overview and Command Reference</a></li>
<li class="toctree-l2"><a class="reference internal" href="cli.add.html">cpl add</a></li> <li class="toctree-l2"><a class="reference internal" href="cli.add.html">cpl add</a></li>
@@ -50,6 +53,7 @@
<li class="toctree-l3"><a class="reference internal" href="#contents">Contents</a></li> <li class="toctree-l3"><a class="reference internal" href="#contents">Contents</a></li>
<li class="toctree-l3"><a class="reference internal" href="#description">Description</a></li> <li class="toctree-l3"><a class="reference internal" href="#description">Description</a></li>
<li class="toctree-l3"><a class="reference internal" href="#project-types">Project types</a></li> <li class="toctree-l3"><a class="reference internal" href="#project-types">Project types</a></li>
<li class="toctree-l3"><a class="reference internal" href="#flags">Flags</a></li>
</ul> </ul>
</li> </li>
<li class="toctree-l2"><a class="reference internal" href="cli.publish.html">cpl publish</a></li> <li class="toctree-l2"><a class="reference internal" href="cli.publish.html">cpl publish</a></li>
@@ -89,62 +93,92 @@
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody"> <div itemprop="articleBody">
<div class="tex2jax_ignore mathjax_ignore section" id="cpl-new"> <section id="cpl-new">
<h1>cpl new<a class="headerlink" href="#cpl-new" title="Permalink to this headline"></a></h1> <h1>cpl new<a class="headerlink" href="#cpl-new" title="Permalink to this heading"></a></h1>
<div class="section" id="contents"> <section id="contents">
<h2>Contents<a class="headerlink" href="#contents" title="Permalink to this headline"></a></h2> <h2>Contents<a class="headerlink" href="#contents" title="Permalink to this heading"></a></h2>
<ul class="simple"> <ul class="simple">
<li><p><a class="reference external" href="#description">Description</a></p></li> <li><p><span class="xref myst">Description</span></p></li>
<li><p><a class="reference external" href="#arguments">Arguments</a></p></li> <li><p><span class="xref myst">Arguments</span></p></li>
<li><p><a class="reference external" href="#project-types">Project types</a></p></li> <li><p><span class="xref myst">Project types</span></p></li>
</ul> </ul>
<p>Generates a workspace and initial project or add a project to workspace.</p> <p>Generates a workspace and initial project or add a project to workspace.</p>
<p>cpl <strong>new</strong> <em>&lt;type&gt;</em> <em>&lt;name&gt;</em><br> <p>cpl <strong>new</strong> <em>&lt;type&gt;</em> <em>&lt;name&gt;</em><br>
cpl <strong>n</strong> <em>&lt;type&gt;</em> <em>&lt;name&gt;</em> <br> cpl <strong>n</strong> <em>&lt;type&gt;</em> <em>&lt;name&gt;</em> <br>
cpl <strong>N</strong> <em>&lt;type&gt;</em> <em>&lt;name&gt;</em></p> cpl <strong>N</strong> <em>&lt;type&gt;</em> <em>&lt;name&gt;</em></p>
</div> </section>
<div class="section" id="description"> <section id="description">
<h2>Description<a class="headerlink" href="#description" title="Permalink to this headline"></a></h2> <h2>Description<a class="headerlink" href="#description" title="Permalink to this heading"></a></h2>
<p>Generates a workspace and initial project or add a project to workspace.</p> <p>Generates a workspace and initial project or add a project to workspace.</p>
<p>If the command is running in a CPL workspace, it will add the new project to the workspace.</p> <p>If the command is running in a CPL workspace, it will add the new project to the workspace.</p>
<table class="colwidths-auto docutils align-default"> <table class="colwidths-auto docutils align-default">
<thead> <thead>
<tr class="row-odd"><th class="head"><p>Argument</p></th> <tr class="row-odd"><th class="head"><p>Argument</p></th>
<th class="text-align:center head"><p>Description</p></th> <th class="text-center head"><p>Description</p></th>
<th class="text-align:center head"><p>Value type</p></th> <th class="text-center head"><p>Value type</p></th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">&lt;type&gt;</span></code></p></td> <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">&lt;type&gt;</span></code></p></td>
<td class="text-align:center"><p>The type of the project, see <a class="reference external" href="#project-types">types</a></p></td> <td class="text-center"><p>The type of the project, see <span class="xref myst">types</span></p></td>
<td class="text-align:center"><p><code class="docutils literal notranslate"><span class="pre">str</span></code></p></td> <td class="text-center"><p><code class="docutils literal notranslate"><span class="pre">str</span></code></p></td>
</tr> </tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">&lt;name&gt;</span></code></p></td> <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">&lt;name&gt;</span></code></p></td>
<td class="text-align:center"><p>The name of the project</p></td> <td class="text-center"><p>The name of the project</p></td>
<td class="text-align:center"><p><code class="docutils literal notranslate"><span class="pre">str</span></code></p></td> <td class="text-center"><p><code class="docutils literal notranslate"><span class="pre">str</span></code></p></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</div> </section>
<div class="section" id="project-types"> <section id="project-types">
<h2>Project types<a class="headerlink" href="#project-types" title="Permalink to this headline"></a></h2> <h2>Project types<a class="headerlink" href="#project-types" title="Permalink to this heading"></a></h2>
<table class="colwidths-auto docutils align-default"> <table class="colwidths-auto docutils align-default">
<thead> <thead>
<tr class="row-odd"><th class="head"><p>Project type</p></th> <tr class="row-odd"><th class="head"><p>Project type</p></th>
<th class="text-align:center head"><p>Description</p></th> <th class="text-center head"><p>Description</p></th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">console</span></code></p></td> <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">console</span></code></p></td>
<td class="text-align:center"><p>A simple console application</p></td> <td class="text-center"><p>A simple console application</p></td>
</tr> </tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">library</span></code></p></td> <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">library</span></code></p></td>
<td class="text-align:center"><p>A package</p></td> <td class="text-center"><p>A package</p></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</div> </section>
</div> <section id="flags">
<h2>Flags<a class="headerlink" href="#flags" title="Permalink to this heading"></a></h2>
<table class="colwidths-auto docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>Argument</p></th>
<th class="text-center head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">--async</span></code></p></td>
<td class="text-center"><p>Specifies whether async is used</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">--application-base</span></code></p></td>
<td class="text-center"><p>Specifies whether application base is used</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">--startup</span></code></p></td>
<td class="text-center"><p>Specifies whether startup is used</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">--service-providing</span></code></p></td>
<td class="text-center"><p>Specifies whether service-providing is used</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">--nothing</span></code></p></td>
<td class="text-center"><p>Specifies whether nothing is used</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">--venv</span></code></p></td>
<td class="text-center"><p>Specifies whether venv is used</p></td>
</tr>
</tbody>
</table>
</section>
</section>
</div> </div>

View File

@@ -1,7 +1,8 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" > <html class="writer-html5" lang="en" >
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>CLI Overview and Command Reference &mdash; Common Python Library documentation</title> <title>CLI Overview and Command Reference &mdash; Common Python Library documentation</title>
<link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -13,6 +14,7 @@
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script> <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script> <script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script> <script src="_static/underscore.js"></script>
<script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
<script src="_static/doctools.js"></script> <script src="_static/doctools.js"></script>
<script src="_static/js/theme.js"></script> <script src="_static/js/theme.js"></script>
<link rel="index" title="Index" href="genindex.html" /> <link rel="index" title="Index" href="genindex.html" />
@@ -39,6 +41,7 @@
<ul class="current"> <ul class="current">
<li class="toctree-l1"><a class="reference internal" href="introduction.html">Introduction to the CPL Docs</a></li> <li class="toctree-l1"><a class="reference internal" href="introduction.html">Introduction to the CPL Docs</a></li>
<li class="toctree-l1"><a class="reference internal" href="getting_started.html">Getting started</a></li> <li class="toctree-l1"><a class="reference internal" href="getting_started.html">Getting started</a></li>
<li class="toctree-l1"><a class="reference internal" href="contributing.html">Contributing to CPL</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="cpl_cli.html">CLI Reference</a><ul class="current"> <li class="toctree-l1 current"><a class="reference internal" href="cpl_cli.html">CLI Reference</a><ul class="current">
<li class="toctree-l2 current"><a class="current reference internal" href="#">CLI Overview and Command Reference</a><ul> <li class="toctree-l2 current"><a class="current reference internal" href="#">CLI Overview and Command Reference</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#table-of-contents">Table of Contents</a></li> <li class="toctree-l3"><a class="reference internal" href="#table-of-contents">Table of Contents</a></li>
@@ -94,20 +97,20 @@
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody"> <div itemprop="articleBody">
<div class="tex2jax_ignore mathjax_ignore section" id="cli-overview-and-command-reference"> <section id="cli-overview-and-command-reference">
<h1>CLI Overview and Command Reference<a class="headerlink" href="#cli-overview-and-command-reference" title="Permalink to this headline"></a></h1> <h1>CLI Overview and Command Reference<a class="headerlink" href="#cli-overview-and-command-reference" title="Permalink to this heading"></a></h1>
<div class="section" id="table-of-contents"> <section id="table-of-contents">
<h2>Table of Contents<a class="headerlink" href="#table-of-contents" title="Permalink to this headline"></a></h2> <h2>Table of Contents<a class="headerlink" href="#table-of-contents" title="Permalink to this heading"></a></h2>
<ol class="simple"> <ol class="arabic simple">
<li><p><a class="reference external" href="setup#install-the-package">Install CPL</a></p></li> <li><p><span class="xref myst">Install CPL</span></p></li>
<li><p><a class="reference external" href="setup#install-the-cli">Install CPL CLI</a></p></li> <li><p><span class="xref myst">Install CPL CLI</span></p></li>
<li><p><a class="reference external" href="#basic-workflow">Basic workflow</a></p></li> <li><p><span class="xref myst">Basic workflow</span></p></li>
<li><p><a class="reference external" href="#cli-command-language-syntax">CLI command-language syntax</a></p></li> <li><p><span class="xref myst">CLI command-language syntax</span></p></li>
<li><p><a class="reference external" href="#command-overview">Command overview</a></p></li> <li><p><span class="xref myst">Command overview</span></p></li>
</ol> </ol>
</div> </section>
<div class="section" id="basic-workflow"> <section id="basic-workflow">
<h2>Basic workflow<a class="headerlink" href="#basic-workflow" title="Permalink to this headline"></a></h2> <h2>Basic workflow<a class="headerlink" href="#basic-workflow" title="Permalink to this heading"></a></h2>
<p>To create, build, and serve a new, basic CPL project on a development server, go to the parent directory of your new workspace use the following commands:</p> <p>To create, build, and serve a new, basic CPL project on a development server, go to the parent directory of your new workspace use the following commands:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>cpl new console my-first-project <div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>cpl new console my-first-project
<span class="nb">cd</span> my-first-project <span class="nb">cd</span> my-first-project
@@ -115,85 +118,85 @@ cpl start
</pre></div> </pre></div>
</div> </div>
<p>In the terminal you will the output of the app.</p> <p>In the terminal you will the output of the app.</p>
</div> </section>
<div class="section" id="cli-command-language-syntax"> <section id="cli-command-language-syntax">
<h2>CLI command-language syntax<a class="headerlink" href="#cli-command-language-syntax" title="Permalink to this headline"></a></h2> <h2>CLI command-language syntax<a class="headerlink" href="#cli-command-language-syntax" title="Permalink to this heading"></a></h2>
<p><code class="docutils literal notranslate"><span class="pre">cpl</span></code> commandNameOrAlias requiredArg <code class="docutils literal notranslate"><span class="pre">[optionalsArgs]</span></code></p> <p><code class="docutils literal notranslate"><span class="pre">cpl</span></code> commandNameOrAlias requiredArg <code class="docutils literal notranslate"><span class="pre">[optionalsArgs]</span></code></p>
<ul class="simple"> <ul class="simple">
<li><p>Most commands, and some options, have aliases. Aliases are shown in the syntax statement for each command.</p></li> <li><p>Most commands, and some options, have aliases. Aliases are shown in the syntax statement for each command.</p></li>
<li><p>Arguments are not prefixed.</p></li> <li><p>Arguments are not prefixed.</p></li>
</ul> </ul>
<div class="section" id="relative-paths"> <section id="relative-paths">
<h3>Relative paths<a class="headerlink" href="#relative-paths" title="Permalink to this headline"></a></h3> <h3>Relative paths<a class="headerlink" href="#relative-paths" title="Permalink to this heading"></a></h3>
<p>Options that specify files can be given as absolute paths, or as paths relative to the current working directory, which is generally either the workspace or project root.</p> <p>Options that specify files can be given as absolute paths, or as paths relative to the current working directory, which is generally either the workspace or project root.</p>
</div> </section>
<div class="section" id="schematics"> <section id="schematics">
<h3>Schematics<a class="headerlink" href="#schematics" title="Permalink to this headline"></a></h3> <h3>Schematics<a class="headerlink" href="#schematics" title="Permalink to this heading"></a></h3>
<p>The cpl generate command takes as an argument the artifact to be generated. In addition to any general options, each artifact defines its own options in a schematic. Schematic options are supplied to the command in the same format as immediate command options.</p> <p>The cpl generate command takes as an argument the artifact to be generated. In addition to any general options, each artifact defines its own options in a schematic. Schematic options are supplied to the command in the same format as immediate command options.</p>
</div> </section>
</div> </section>
<div class="section" id="command-overview"> <section id="command-overview">
<h2>Command overview<a class="headerlink" href="#command-overview" title="Permalink to this headline"></a></h2> <h2>Command overview<a class="headerlink" href="#command-overview" title="Permalink to this heading"></a></h2>
<table class="colwidths-auto docutils align-default"> <table class="colwidths-auto docutils align-default">
<thead> <thead>
<tr class="row-odd"><th class="head"><p>Command</p></th> <tr class="row-odd"><th class="head"><p>Command</p></th>
<th class="text-align:center head"><p>Alias</p></th> <th class="text-center head"><p>Alias</p></th>
<th class="text-align:center head"><p>Description</p></th> <th class="text-center head"><p>Description</p></th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr class="row-even"><td><p><a class="reference internal" href="cli.add.html"><span class="doc std std-doc">add</span></a></p></td> <tr class="row-even"><td><p><a class="reference internal" href="cli.add.html"><span class="doc std std-doc">add</span></a></p></td>
<td class="text-align:center"><p>a or a</p></td> <td class="text-center"><p>a or a</p></td>
<td class="text-align:center"><p>Adds a project reference to given project.</p></td> <td class="text-center"><p>Adds a project reference to given project.</p></td>
</tr> </tr>
<tr class="row-odd"><td><p><a class="reference internal" href="cli.build.html"><span class="doc std std-doc">build</span></a></p></td> <tr class="row-odd"><td><p><a class="reference internal" href="cli.build.html"><span class="doc std std-doc">build</span></a></p></td>
<td class="text-align:center"><p>b or B</p></td> <td class="text-center"><p>b or B</p></td>
<td class="text-align:center"><p>Prepares files for publish into an output directory named dist/ at the given output path. Must be executed from within a workspace directory.</p></td> <td class="text-center"><p>Prepares files for publish into an output directory named dist/ at the given output path. Must be executed from within a workspace directory.</p></td>
</tr> </tr>
<tr class="row-even"><td><p><a class="reference internal" href="cli.generate.html"><span class="doc std std-doc">generate</span></a></p></td> <tr class="row-even"><td><p><a class="reference internal" href="cli.generate.html"><span class="doc std std-doc">generate</span></a></p></td>
<td class="text-align:center"><p>g or G</p></td> <td class="text-center"><p>g or G</p></td>
<td class="text-align:center"><p>Generate a new file.</p></td> <td class="text-center"><p>Generate a new file.</p></td>
</tr> </tr>
<tr class="row-odd"><td><p><a class="reference internal" href="cli.help.html"><span class="doc std std-doc">help</span></a></p></td> <tr class="row-odd"><td><p><a class="reference internal" href="cli.help.html"><span class="doc std std-doc">help</span></a></p></td>
<td class="text-align:center"><p>h or H</p></td> <td class="text-center"><p>h or H</p></td>
<td class="text-align:center"><p>Lists available command and their short descriptions.</p></td> <td class="text-center"><p>Lists available command and their short descriptions.</p></td>
</tr> </tr>
<tr class="row-even"><td><p><a class="reference internal" href="cli.install.html"><span class="doc std std-doc">install</span></a></p></td> <tr class="row-even"><td><p><a class="reference internal" href="cli.install.html"><span class="doc std std-doc">install</span></a></p></td>
<td class="text-align:center"><p>i or I</p></td> <td class="text-center"><p>i or I</p></td>
<td class="text-align:center"><p>With argument installs packages to project, without argument installs project dependencies.</p></td> <td class="text-center"><p>With argument installs packages to project, without argument installs project dependencies.</p></td>
</tr> </tr>
<tr class="row-odd"><td><p><a class="reference internal" href="cli.new.html"><span class="doc std std-doc">new</span></a></p></td> <tr class="row-odd"><td><p><a class="reference internal" href="cli.new.html"><span class="doc std std-doc">new</span></a></p></td>
<td class="text-align:center"><p>n or N</p></td> <td class="text-center"><p>n or N</p></td>
<td class="text-align:center"><p>Creates new CPL project.</p></td> <td class="text-center"><p>Creates new CPL project.</p></td>
</tr> </tr>
<tr class="row-even"><td><p><a class="reference internal" href="cli.publish.html"><span class="doc std std-doc">publish</span></a></p></td> <tr class="row-even"><td><p><a class="reference internal" href="cli.publish.html"><span class="doc std std-doc">publish</span></a></p></td>
<td class="text-align:center"><p>p or P</p></td> <td class="text-center"><p>p or P</p></td>
<td class="text-align:center"><p>Prepares files for publish into an output directory named dist/ at the given output path and executes <code class="docutils literal notranslate"><span class="pre">setup.py</span></code>. Must be executed from within a library workspace directory.</p></td> <td class="text-center"><p>Prepares files for publish into an output directory named dist/ at the given output path and executes <code class="docutils literal notranslate"><span class="pre">setup.py</span></code>. Must be executed from within a library workspace directory.</p></td>
</tr> </tr>
<tr class="row-odd"><td><p><a class="reference internal" href="cli.remove.html"><span class="doc std std-doc">remove</span></a></p></td> <tr class="row-odd"><td><p><a class="reference internal" href="cli.remove.html"><span class="doc std std-doc">remove</span></a></p></td>
<td class="text-align:center"><p>r or R</p></td> <td class="text-center"><p>r or R</p></td>
<td class="text-align:center"><p>Removes a project from workspace.</p></td> <td class="text-center"><p>Removes a project from workspace.</p></td>
</tr> </tr>
<tr class="row-even"><td><p><a class="reference internal" href="cli.start.html"><span class="doc std std-doc">start</span></a></p></td> <tr class="row-even"><td><p><a class="reference internal" href="cli.start.html"><span class="doc std std-doc">start</span></a></p></td>
<td class="text-align:center"><p>s or S</p></td> <td class="text-center"><p>s or S</p></td>
<td class="text-align:center"><p>Starts CPL project, restarting on file changes.</p></td> <td class="text-center"><p>Starts CPL project, restarting on file changes.</p></td>
</tr> </tr>
<tr class="row-odd"><td><p><a class="reference internal" href="cli.uninstall.html"><span class="doc std std-doc">uninstall</span></a></p></td> <tr class="row-odd"><td><p><a class="reference internal" href="cli.uninstall.html"><span class="doc std std-doc">uninstall</span></a></p></td>
<td class="text-align:center"><p>ui or UI</p></td> <td class="text-center"><p>ui or UI</p></td>
<td class="text-align:center"><p>Uninstalls packages from project.</p></td> <td class="text-center"><p>Uninstalls packages from project.</p></td>
</tr> </tr>
<tr class="row-even"><td><p><a class="reference internal" href="cli.update.html"><span class="doc std std-doc">update</span></a></p></td> <tr class="row-even"><td><p><a class="reference internal" href="cli.update.html"><span class="doc std std-doc">update</span></a></p></td>
<td class="text-align:center"><p>u or U</p></td> <td class="text-center"><p>u or U</p></td>
<td class="text-align:center"><p>Update CPL and project dependencies.</p></td> <td class="text-center"><p>Update CPL and project dependencies.</p></td>
</tr> </tr>
<tr class="row-odd"><td><p><a class="reference internal" href="cli.version.html"><span class="doc std std-doc">version</span></a></p></td> <tr class="row-odd"><td><p><a class="reference internal" href="cli.version.html"><span class="doc std std-doc">version</span></a></p></td>
<td class="text-align:center"><p>v or V</p></td> <td class="text-center"><p>v or V</p></td>
<td class="text-align:center"><p>Outputs CPL CLI version.</p></td> <td class="text-center"><p>Outputs CPL CLI version.</p></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</div> </section>
</div> </section>
</div> </div>

View File

@@ -1,7 +1,8 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" > <html class="writer-html5" lang="en" >
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>cpl publish &mdash; Common Python Library documentation</title> <title>cpl publish &mdash; Common Python Library documentation</title>
<link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -13,6 +14,7 @@
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script> <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script> <script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script> <script src="_static/underscore.js"></script>
<script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
<script src="_static/doctools.js"></script> <script src="_static/doctools.js"></script>
<script src="_static/js/theme.js"></script> <script src="_static/js/theme.js"></script>
<link rel="index" title="Index" href="genindex.html" /> <link rel="index" title="Index" href="genindex.html" />
@@ -39,6 +41,7 @@
<ul class="current"> <ul class="current">
<li class="toctree-l1"><a class="reference internal" href="introduction.html">Introduction to the CPL Docs</a></li> <li class="toctree-l1"><a class="reference internal" href="introduction.html">Introduction to the CPL Docs</a></li>
<li class="toctree-l1"><a class="reference internal" href="getting_started.html">Getting started</a></li> <li class="toctree-l1"><a class="reference internal" href="getting_started.html">Getting started</a></li>
<li class="toctree-l1"><a class="reference internal" href="contributing.html">Contributing to CPL</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="cpl_cli.html">CLI Reference</a><ul class="current"> <li class="toctree-l1 current"><a class="reference internal" href="cpl_cli.html">CLI Reference</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="cli.overview.html">CLI Overview and Command Reference</a></li> <li class="toctree-l2"><a class="reference internal" href="cli.overview.html">CLI Overview and Command Reference</a></li>
<li class="toctree-l2"><a class="reference internal" href="cli.add.html">cpl add</a></li> <li class="toctree-l2"><a class="reference internal" href="cli.add.html">cpl add</a></li>
@@ -88,21 +91,21 @@
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody"> <div itemprop="articleBody">
<div class="tex2jax_ignore mathjax_ignore section" id="cpl-publish"> <section id="cpl-publish">
<h1>cpl publish<a class="headerlink" href="#cpl-publish" title="Permalink to this headline"></a></h1> <h1>cpl publish<a class="headerlink" href="#cpl-publish" title="Permalink to this heading"></a></h1>
<div class="section" id="contents"> <section id="contents">
<h2>Contents<a class="headerlink" href="#contents" title="Permalink to this headline"></a></h2> <h2>Contents<a class="headerlink" href="#contents" title="Permalink to this heading"></a></h2>
<ul class="simple"> <ul class="simple">
<li><p><a class="reference external" href="#description">Description</a></p></li> <li><p><span class="xref myst">Description</span></p></li>
</ul> </ul>
<!-- - [Arguments](#arguments) --> <!-- - [Arguments](#arguments) -->
<p>Prepares files for publish into an output directory named dist/ at the given output path and executes <code class="docutils literal notranslate"><span class="pre">setup.py</span></code>.</p> <p>Prepares files for publish into an output directory named dist/ at the given output path and executes <code class="docutils literal notranslate"><span class="pre">setup.py</span></code>.</p>
<p>cpl <strong>publish</strong> <br> <p>cpl <strong>publish</strong> <br>
cpl <strong>p</strong> <br> cpl <strong>p</strong> <br>
cpl <strong>P</strong></p> cpl <strong>P</strong></p>
</div> </section>
<div class="section" id="description"> <section id="description">
<h2>Description<a class="headerlink" href="#description" title="Permalink to this headline"></a></h2> <h2>Description<a class="headerlink" href="#description" title="Permalink to this heading"></a></h2>
<p>The command can be used to publish a project of type “console” or “library”.</p> <p>The command can be used to publish a project of type “console” or “library”.</p>
<p>The publish command builds the source files and then creates an <code class="docutils literal notranslate"><span class="pre">setup.py</span></code> with data from <code class="docutils literal notranslate"><span class="pre">cpl_core.json</span></code>. <p>The publish command builds the source files and then creates an <code class="docutils literal notranslate"><span class="pre">setup.py</span></code> with data from <code class="docutils literal notranslate"><span class="pre">cpl_core.json</span></code>.
The command executes the <code class="docutils literal notranslate"><span class="pre">setup.py</span></code> and removes all source files with the <code class="docutils literal notranslate"><span class="pre">setup.py</span></code> from the publish/ directory.</p> The command executes the <code class="docutils literal notranslate"><span class="pre">setup.py</span></code> and removes all source files with the <code class="docutils literal notranslate"><span class="pre">setup.py</span></code> from the publish/ directory.</p>
@@ -111,8 +114,8 @@ The command executes the <code class="docutils literal notranslate"><span class=
| Argument | Description | Value type | | Argument | Description | Value type |
| ------------- |:-------------:|:----------------:| | ------------- |:-------------:|:----------------:|
| ```<project>``` | The name of the project to build. Can be an console or a library. | ```str``` --></div> | ```<project>``` | The name of the project to build. Can be an console or a library. | ```str``` --></section>
</div> </section>
</div> </div>

View File

@@ -1,7 +1,8 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" > <html class="writer-html5" lang="en" >
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>cpl remove &mdash; Common Python Library documentation</title> <title>cpl remove &mdash; Common Python Library documentation</title>
<link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -13,6 +14,7 @@
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script> <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script> <script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script> <script src="_static/underscore.js"></script>
<script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
<script src="_static/doctools.js"></script> <script src="_static/doctools.js"></script>
<script src="_static/js/theme.js"></script> <script src="_static/js/theme.js"></script>
<link rel="index" title="Index" href="genindex.html" /> <link rel="index" title="Index" href="genindex.html" />
@@ -39,6 +41,7 @@
<ul class="current"> <ul class="current">
<li class="toctree-l1"><a class="reference internal" href="introduction.html">Introduction to the CPL Docs</a></li> <li class="toctree-l1"><a class="reference internal" href="introduction.html">Introduction to the CPL Docs</a></li>
<li class="toctree-l1"><a class="reference internal" href="getting_started.html">Getting started</a></li> <li class="toctree-l1"><a class="reference internal" href="getting_started.html">Getting started</a></li>
<li class="toctree-l1"><a class="reference internal" href="contributing.html">Contributing to CPL</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="cpl_cli.html">CLI Reference</a><ul class="current"> <li class="toctree-l1 current"><a class="reference internal" href="cpl_cli.html">CLI Reference</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="cli.overview.html">CLI Overview and Command Reference</a></li> <li class="toctree-l2"><a class="reference internal" href="cli.overview.html">CLI Overview and Command Reference</a></li>
<li class="toctree-l2"><a class="reference internal" href="cli.add.html">cpl add</a></li> <li class="toctree-l2"><a class="reference internal" href="cli.add.html">cpl add</a></li>
@@ -52,6 +55,7 @@
<li class="toctree-l3"><a class="reference internal" href="#contents">Contents</a></li> <li class="toctree-l3"><a class="reference internal" href="#contents">Contents</a></li>
<li class="toctree-l3"><a class="reference internal" href="#description">Description</a></li> <li class="toctree-l3"><a class="reference internal" href="#description">Description</a></li>
<li class="toctree-l3"><a class="reference internal" href="#arguments">Arguments</a></li> <li class="toctree-l3"><a class="reference internal" href="#arguments">Arguments</a></li>
<li class="toctree-l3"><a class="reference internal" href="#flags">Flags</a></li>
</ul> </ul>
</li> </li>
<li class="toctree-l2"><a class="reference internal" href="cli.start.html">cpl start</a></li> <li class="toctree-l2"><a class="reference internal" href="cli.start.html">cpl start</a></li>
@@ -89,42 +93,57 @@
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody"> <div itemprop="articleBody">
<div class="tex2jax_ignore mathjax_ignore section" id="cpl-remove"> <section id="cpl-remove">
<h1>cpl remove<a class="headerlink" href="#cpl-remove" title="Permalink to this headline"></a></h1> <h1>cpl remove<a class="headerlink" href="#cpl-remove" title="Permalink to this heading"></a></h1>
<div class="section" id="contents"> <section id="contents">
<h2>Contents<a class="headerlink" href="#contents" title="Permalink to this headline"></a></h2> <h2>Contents<a class="headerlink" href="#contents" title="Permalink to this heading"></a></h2>
<ul class="simple"> <ul class="simple">
<li><p><a class="reference external" href="#description">Description</a></p></li> <li><p><span class="xref myst">Description</span></p></li>
<li><p><a class="reference external" href="#arguments">Arguments</a></p></li> <li><p><span class="xref myst">Arguments</span></p></li>
</ul> </ul>
<p>Removes a project from workspace.</p> <p>Removes a project from workspace.</p>
<p>cpl <strong>remove</strong> <em>&lt;project&gt;</em> <br> <p>cpl <strong>remove</strong> <em>&lt;project&gt;</em> <br>
cpl <strong>r</strong> <em>&lt;project&gt;</em> <br> cpl <strong>r</strong> <em>&lt;project&gt;</em> <br>
cpl <strong>R</strong> <em>&lt;project&gt;</em></p> cpl <strong>R</strong> <em>&lt;project&gt;</em></p>
</div> </section>
<div class="section" id="description"> <section id="description">
<h2>Description<a class="headerlink" href="#description" title="Permalink to this headline"></a></h2> <h2>Description<a class="headerlink" href="#description" title="Permalink to this heading"></a></h2>
<p>Removes a project reference and the files from workspace.</p> <p>Removes a project reference and the files from workspace.</p>
<p>If you call the command in a CPL workspace, you can use the project names. Otherwise the paths of the projects must be specified.</p> <p>If you call the command in a CPL workspace, you can use the project names. Otherwise the paths of the projects must be specified.</p>
</div> </section>
<div class="section" id="arguments"> <section id="arguments">
<h2>Arguments<a class="headerlink" href="#arguments" title="Permalink to this headline"></a></h2> <h2>Arguments<a class="headerlink" href="#arguments" title="Permalink to this heading"></a></h2>
<table class="colwidths-auto docutils align-default"> <table class="colwidths-auto docutils align-default">
<thead> <thead>
<tr class="row-odd"><th class="head"><p>Argument</p></th> <tr class="row-odd"><th class="head"><p>Argument</p></th>
<th class="text-align:center head"><p>Description</p></th> <th class="text-center head"><p>Description</p></th>
<th class="text-align:center head"><p>Value type</p></th> <th class="text-center head"><p>Value type</p></th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">&lt;project&gt;</span></code></p></td> <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">&lt;project&gt;</span></code></p></td>
<td class="text-align:center"><p>The name of the project to delete</p></td> <td class="text-center"><p>The name of the project to delete</p></td>
<td class="text-align:center"><p><code class="docutils literal notranslate"><span class="pre">str</span></code></p></td> <td class="text-center"><p><code class="docutils literal notranslate"><span class="pre">str</span></code></p></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</div> </section>
</div> <section id="flags">
<h2>Flags<a class="headerlink" href="#flags" title="Permalink to this heading"></a></h2>
<table class="colwidths-auto docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>Argument</p></th>
<th class="text-center head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">--simulate</span></code></p></td>
<td class="text-center"><p>Specifies whether the command is simulated</p></td>
</tr>
</tbody>
</table>
</section>
</section>
</div> </div>

View File

@@ -1,7 +1,8 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" > <html class="writer-html5" lang="en" >
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>cpl start &mdash; Common Python Library documentation</title> <title>cpl start &mdash; Common Python Library documentation</title>
<link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -13,6 +14,7 @@
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script> <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script> <script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script> <script src="_static/underscore.js"></script>
<script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
<script src="_static/doctools.js"></script> <script src="_static/doctools.js"></script>
<script src="_static/js/theme.js"></script> <script src="_static/js/theme.js"></script>
<link rel="index" title="Index" href="genindex.html" /> <link rel="index" title="Index" href="genindex.html" />
@@ -39,6 +41,7 @@
<ul class="current"> <ul class="current">
<li class="toctree-l1"><a class="reference internal" href="introduction.html">Introduction to the CPL Docs</a></li> <li class="toctree-l1"><a class="reference internal" href="introduction.html">Introduction to the CPL Docs</a></li>
<li class="toctree-l1"><a class="reference internal" href="getting_started.html">Getting started</a></li> <li class="toctree-l1"><a class="reference internal" href="getting_started.html">Getting started</a></li>
<li class="toctree-l1"><a class="reference internal" href="contributing.html">Contributing to CPL</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="cpl_cli.html">CLI Reference</a><ul class="current"> <li class="toctree-l1 current"><a class="reference internal" href="cpl_cli.html">CLI Reference</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="cli.overview.html">CLI Overview and Command Reference</a></li> <li class="toctree-l2"><a class="reference internal" href="cli.overview.html">CLI Overview and Command Reference</a></li>
<li class="toctree-l2"><a class="reference internal" href="cli.add.html">cpl add</a></li> <li class="toctree-l2"><a class="reference internal" href="cli.add.html">cpl add</a></li>
@@ -84,13 +87,13 @@
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody"> <div itemprop="articleBody">
<div class="tex2jax_ignore mathjax_ignore section" id="cpl-start"> <section id="cpl-start">
<h1>cpl start<a class="headerlink" href="#cpl-start" title="Permalink to this headline"></a></h1> <h1>cpl start<a class="headerlink" href="#cpl-start" title="Permalink to this heading"></a></h1>
<p>Starts your application, restarting on file changes.</p> <p>Starts your application, restarting on file changes.</p>
<p>cpl <strong>start</strong> <br> <p>cpl <strong>start</strong> <br>
cpl <strong>s</strong> <br> cpl <strong>s</strong> <br>
cpl <strong>S</strong></p> cpl <strong>S</strong></p>
</div> </section>
</div> </div>

Some files were not shown because too many files have changed in this diff Show More