Fredrik81
7713cfeb79
Corrected logic for -j + and - argument
2020-03-02 21:02:32 +01:00
Fredrik81
f08c7eedf1
Changed jobs to be dynamic for last loop
2020-03-01 14:35:13 +01:00
Fredrik81
75b4f1a442
Fix alignment of higher values
2020-03-01 14:12:27 +01:00
Fredrik81
e89fd33229
Fix for more arguments
2020-02-29 23:57:15 +01:00
Fredrik81
7a4edb1cd8
Fix: When total epochs is less than cpu cores
2020-02-29 23:41:59 +01:00
Fredrik81
23ae0653bd
Changed table output to match hyperopt-list command
2020-02-29 23:24:08 +01:00
Fredrik81
349aa2f957
Added dynamic print table function to hyperopt
2020-02-28 21:54:04 +01:00
hroff-1902
893d9cde8d
Merge pull request #2943 from Fredrik81/add-print-table
...
Added function to print hyperopt-list as table using tabulate
2020-02-27 05:22:41 +03:00
Fredrik81
cd7efde6c0
Fixed coloring so it's only targeting the values not the table borders
2020-02-24 22:06:21 +01:00
Fredrik81
23bf135b8a
Alignment of table content, changed coloring, changed 'Best' column to show if it's initial_point or best
2020-02-24 11:01:14 +01:00
Fredrik Rydin
2058b492eb
Added function to print hyperopt-list as table using tabulate
2020-02-18 22:46:53 +01:00
Matthias
d65a06947d
Merge branch 'develop' into data_handler
2020-02-09 15:16:43 +01:00
hroff-1902
d457d43999
Merge pull request #2833 from hroff-1902/type-hints
...
Add some type hints
2020-02-03 23:24:26 +03:00
hroff-1902
f3d500085c
Add some type hints
2020-02-02 07:00:40 +03:00
Yazeed Al Oyoun
d038bcedb0
fixed some more line alignments
2020-01-31 22:37:05 +01:00
Matthias
1b9af9d2d8
Merge branch 'develop' into data_handler
2020-01-26 20:31:13 +01:00
hroff-1902
f4c7edf551
No args for backtest(), use arguments
2020-01-25 12:49:37 +01:00
Matthias
699c0d6bc3
Merge branch 'develop' into data_handler
2019-12-30 19:40:43 +01:00
Matthias
1ffda29fd2
Adjust improts to new exception location
2019-12-30 15:02:17 +01:00
Matthias
416517b0c9
Move trim_dataframe from history to converter
2019-12-28 11:01:41 +01:00
Matthias
6d5aca4f32
Convert hyperoptloss resolver to static loader
2019-12-23 10:09:08 +01:00
Matthias
248ef5a0ea
Convert HyperoptResolver to static loader
2019-12-23 10:06:19 +01:00
hroff-1902
cf4c3642ce
Minor improvements in data.history
2019-12-18 01:06:03 +03:00
Matthias
2f7181e236
Merge pull request #2648 from hroff-1902/hyperopt-random-state
...
Seed hyperopt random_state if not passed
2019-12-14 15:54:59 +01:00
hroff-1902
f2266ea9f4
Use shorter range for seeded random-state
2019-12-14 15:17:45 +03:00
Matthias
703924d6c4
Merge pull request #2643 from freqtrade/mins
...
Remove min (plural) from codebase
2019-12-12 14:27:39 +01:00
hroff-1902
6e778ad710
Seed hyperopt random_state if not passed
2019-12-12 03:12:28 +03:00
Matthias
f44e3dc319
Merge pull request #2642 from hroff-1902/fix-hyperopt-trailing
...
Fix generation of hyperopt trailing params
2019-12-11 19:53:42 +01:00
Matthias
7c7ca1cb90
Remove min (plural) from codebase
2019-12-11 07:12:37 +01:00
Matthias
b2a9b87be3
Merge pull request #2632 from freqtrade/dependabot/pip/develop/scikit-learn-0.22
...
Bump scikit-learn from 0.21.3 to 0.22
2019-12-10 16:20:39 +01:00
Matthias
3f9f29ba4e
Fix Flake8 import error
2019-12-10 16:10:51 +01:00
hroff-1902
3448f86263
Suppress scikit-learn FutureWarnings from skopt imports
2019-12-10 15:46:29 +03:00
hroff-1902
641e3fdf7a
Fix generation of hyperopt trailing params
2019-12-10 03:32:43 +03:00
hroff-1902
0e4ef33d6a
Merge pull request #2581 from hroff-1902/hyperopt-list
...
Add hyperopt-list and hyperopt-show commands
2019-12-10 00:30:26 +03:00
hroff-1902
d21ae4edd3
Add fixes for comments in the review
2019-12-05 23:29:31 +03:00
Matthias
4b0a4c936a
Fix hyperopt with ticker_interval from strategy
2019-12-05 20:31:02 +01:00
hroff-1902
b61f43835d
Make flake happy
2019-12-05 01:11:06 +03:00
hroff-1902
017a94adc1
Merge develop
2019-12-05 01:08:38 +03:00
hroff-1902
54694dd3a4
Manual merge of some conflicts in hyperopt
2019-12-04 23:14:47 +03:00
hroff-1902
668d42447f
Refactor log_trials_result()
2019-12-01 16:15:00 +03:00
hroff-1902
69b0767165
Merge remote-tracking branch 'upstream/develop' into hyperopt-trailing-space
2019-12-01 03:28:23 +03:00
hroff-1902
8f9b5095b5
Fix some tests
2019-11-27 22:52:43 +03:00
hroff-1902
8e7512161a
Add hyperopt-list and hyperopt-show commands
2019-11-26 15:01:42 +03:00
hroff-1902
067267f4cf
Log messages improved (plural/singular)
2019-11-23 12:20:41 +03:00
hroff-1902
737c07c5b6
Make mypy happy
2019-11-23 11:51:52 +03:00
hroff-1902
097cdcb57a
Save epochs at intermediate points
2019-11-23 11:32:33 +03:00
hroff-1902
31ab32f0b9
Always set trailing_stop=True with 'trailing' hyperspace
2019-11-08 12:47:28 +03:00
hroff-1902
f90676cfc5
Add trailing stoploss hyperspace
2019-11-08 03:07:43 +03:00
Matthias
ca77dbe8da
Fix UnicodeError in hyperopt output
2019-11-06 19:33:15 +01:00
Matthias
132a4da7cf
Small style fixes and adjusted tests
2019-10-27 10:56:38 +01:00
Matthias
33164ac78e
Refactor loading of bt data to backtesting ...
2019-10-27 09:44:56 +01:00
hroff-1902
9b23376415
Move experimental settings to ask_strategy
2019-10-05 13:29:59 +03:00
Matthias
b994f5c273
Merge pull request #2294 from hroff-1902/fix-skopt-memory3
...
Fix skopt memory exhaustion
2019-09-25 19:55:27 +02:00
hroff-1902
665e0570ae
Fix hyperopt position stacking
2019-09-25 03:41:22 +03:00
hroff-1902
6ffb8b7a70
Fix wordings in comment
2019-09-23 13:25:31 +03:00
hroff-1902
0c6164df7e
Fix memory exhaustion in skopt models list
2019-09-23 13:03:43 +03:00
Matthias
1cd8ed0c1a
Remove --refresh-pairs
2019-09-20 20:02:07 +02:00
hroff-1902
69f29e8907
minor: Cleanup for backtesting
2019-09-18 22:57:17 +03:00
hroff-1902
5cbc073dd1
minor: Cleanup hyperopt
2019-09-16 21:46:15 +03:00
Matthias
972b8a1726
Remove defaulting to test_data folder when no datadir is present
2019-09-07 21:06:20 +02:00
Matthias
7af445adf3
Merge pull request #2137 from hroff-1902/hyperopt-adaptive-roi-space
...
Hyperopt: adaptive roi_space
2019-09-06 06:26:52 +02:00
Matthias
513e84880e
Don't escape ticks where it's not needed
2019-08-25 20:38:51 +02:00
hroff-1902
067208bc9d
make backtesting an attribute of Hyperopt
2019-08-24 00:10:35 +03:00
hroff-1902
17b3f01b28
Merge branch 'develop' into hyperopt-adaptive-roi-space
2019-08-20 23:00:23 +03:00
hroff-1902
cadf573170
round printed stoploss value as well
2019-08-20 22:24:59 +03:00
hroff-1902
a12876da92
fine printing for floats in the roi tables (round to 5 digits after the decimal point)
2019-08-20 22:17:21 +03:00
Matthias
0a478bc0dc
Merge branch 'develop' into align_userdata
2019-08-18 15:00:12 +02:00
hroff-1902
e525275d10
make flake and mypy happy
2019-08-15 23:13:46 +03:00
hroff-1902
4fa92ec0fa
hyperopt: --print-json option added
2019-08-15 21:39:04 +03:00
hroff-1902
5b9711c002
adaptive roi_space
2019-08-14 13:25:49 +03:00
Matthias
51c3a31bb5
Correct imports and calls to parse_timerange
2019-08-14 10:07:32 +02:00
hroff-1902
8f92912852
final colorization schema
...
colorization schema-2: red, green, bright/dim
colorization schema-3: red, green, bright only green bests
colorization schema-4: no red, green for profit, bright for bests
2019-08-12 21:08:52 +03:00
hroff-1902
ae39f6fba5
use of termcolor eliminated
2019-08-09 14:51:03 +03:00
Matthias
383b24ab84
Merge branch 'develop' into align_userdata
2019-08-05 06:55:51 +02:00
hroff-1902
9cbab35de0
colorization by means of termcolor and colorama
2019-08-04 22:54:19 +03:00
hroff-1902
f200f52a16
hyperopt print colorized results
2019-08-03 19:09:42 +03:00
hroff-1902
13620df717
'with values:' line removed
2019-08-03 11:05:05 +03:00
hroff-1902
3b65c986ee
wordings fixed
2019-08-03 10:20:20 +03:00
hroff-1902
aa8f44f68c
improvements to hyperopt output
2019-08-02 22:22:58 +03:00
Matthias
39e8e507d9
Merge branch 'develop' into align_userdata
2019-08-02 20:08:26 +02:00
hroff-1902
065ebd39ef
cleanup in hyperopt
2019-08-01 23:57:26 +03:00
Matthias
bcccdda7c0
Merge branch 'develop' into align_userdata
2019-08-01 19:33:45 +02:00
Matthias
8cef567abc
create and use hyperopt-results folder
2019-07-31 07:10:17 +02:00
hroff-1902
8f1f416a52
hyperopt cleanup and output improvements
2019-07-30 11:47:28 +03:00
Matthias
2c7a248307
Use user_data_dir in hyperopt
2019-07-28 14:57:05 +02:00
Matthias
0a253d66d0
Remove os.path from hyperopt
2019-07-28 14:57:05 +02:00
Matthias
639a4d5cf7
Allow importing interface from hyperopt.py
2019-07-17 07:15:43 +02:00
Matthias
8ccfc0f316
Remove unused variables
2019-07-17 06:24:40 +02:00
Matthias
d23179e25c
Update hyperopt-loss to use resolver
2019-07-16 06:27:43 +02:00
Matthias
7d62bb8c53
Revert --clean argument to --continue
2019-07-16 05:51:26 +02:00
Matthias
07a1c48e8c
Fix wrong intendation for custom-hyperopt check
2019-07-15 23:14:07 +02:00
Matthias
7be25313a5
Add some mypy ignores
2019-07-15 22:59:28 +02:00
Matthias
55e8092cbf
Add sharpe ratio as loss function
2019-07-15 22:52:33 +02:00
Matthias
e5170582de
Adapt tests to new loss-function method
2019-07-15 22:45:14 +02:00
Matthias
710443d200
Add documentation for custom hyperopt
2019-07-15 21:38:49 +02:00
Matthias
2a20423be6
Allow loading custom hyperopt loss functions
2019-07-15 21:35:42 +02:00
Matthias
2fedae6060
Move unnecessary things out of generate_optimizer
2019-07-15 20:31:55 +02:00
Matthias
b1b4048f97
Add test for hyperopt
2019-07-15 20:28:02 +02:00
Matthias
107f00ff8f
Add hyperopt option to clean temporary pickle files
2019-07-15 20:17:15 +02:00
Matthias
5144e98a82
Merge pull request #2015 from hroff-1902/refactor/config2
...
Make configuration a module
2019-07-15 19:41:57 +02:00
Matthias
cbe25178d7
Merge pull request #2009 from hroff-1902/fix-2008
...
fix #2008
2019-07-15 10:55:33 +02:00
hroff-1902
65f77306d3
using logger.debug, info was too noisy
2019-07-14 21:00:48 +03:00
hroff-1902
efbc7cccb1
enable --dmmp for hyperopt
2019-07-14 20:56:17 +03:00
hroff-1902
1bdffcc73b
make configuration a sep. module, including arguments
2019-07-12 00:49:23 +03:00
hroff-1902
e993e010f4
Fix #2013
2019-07-11 23:02:57 +03:00
hroff-1902
c474e2ac86
fix #2008
2019-07-10 01:53:40 +03:00
Matthias
89ff614e1d
Add pair as parameter, and warn when fillup was necessary
2019-06-15 13:46:19 +02:00
hroff-1902
90b0f1daa8
minor optimize cleanup
2019-06-10 02:08:54 +03:00
Matthias
236c392d28
Don't load hyperopts / optimize dependency tree if that module is not
...
used
2019-05-25 20:00:31 +02:00
Matthias
b38c43141c
Adjust imports to new location
2019-05-25 16:53:35 +02:00
hroff-1902
8b95e12468
log message adjusted in backtesting and hyperopt
2019-05-15 12:05:35 +03:00
hroff-1902
5677c4882e
minor: add ticker data validation; log backtesting interval
2019-05-13 23:56:59 +03:00
hroff-1902
00b4501c59
avg profit and total profit corrected (to be %, not ratio); comments cleaned up a bit; typo in the log msg fixed
2019-05-12 21:14:00 +03:00
hroff-1902
0f43e0bb7d
minor hyperopt output improvements
2019-05-10 10:54:44 +03:00
hroff-1902
e7b81e4d46
hyperopt --min-trades parameter
2019-05-01 15:27:58 +03:00
hroff-1902
ea44bbff9f
prevent hyperopt from running simultaneously
2019-04-25 11:11:04 +03:00
hroff-1902
6a0f527e0e
merge --job-workers and commit printing debug log messages with the opt state
2019-04-24 10:35:04 +03:00
hroff-1902
2898067318
Merge branch 'develop' into hyperopt-jobs
2019-04-24 10:31:03 +03:00
hroff-1902
fc4ef2b430
Merge branch 'develop' into hyperopt-opt-params
2019-04-23 21:58:27 +03:00
hroff-1902
e3b0474901
Merge branch 'develop' into hyperopt-jobs
2019-04-23 21:34:38 +03:00
hroff-1902
cc9f899cd6
removed explicit dependency on multiprocessing module
2019-04-23 21:25:36 +03:00
hroff-1902
a022b1a6c1
--random-state for optimzer to get reproducible results added
2019-04-23 21:18:52 +03:00
Matthias
4971b9fc39
Merge pull request #1793 from hroff-1902/hyperopt-debug-state
...
hyperopt: print optimizer state in debug log messages
2019-04-23 20:11:04 +02:00
hroff-1902
3e3fce5f38
print optimizer state in debug log messages
2019-04-23 09:49:24 +03:00
hroff-1902
7c8e26c717
-j/--job-workers option added for controlling the number of joblib parallel worker processes used in hyperopt
...
docs refreshed
2019-04-23 00:52:07 +03:00
hroff-1902
ad85ac3dde
make --refresh-pairs-cached common option for optimization; added support for it into hyperopt
2019-04-22 21:24:45 +03:00
hroff-1902
6b87d94bb0
--print-all command line option added for hyperopt
2019-04-22 01:10:01 +03:00
Matthias
1340b71633
Add RunMode setting to determine bot state
2019-01-22 07:04:19 +01:00
Matthias
40b1d8f067
Fix CI problems
2019-01-06 14:57:14 +01:00
Matthias
dd2af86a41
pprint results
2019-01-06 14:47:38 +01:00
Matthias
a0df7b9d7c
Use sell/buy trends from hyperopt file if available
2019-01-06 14:12:55 +01:00
Matthias
2147bd8847
Fix problem when no experimental dict is available
2019-01-06 13:29:14 +01:00
Matthias
68ba1e1f37
Add sell signal hyperopt
2019-01-06 13:29:14 +01:00
Matthias
6c02cc5993
Adjust test to pathlib
2018-12-15 14:14:38 +01:00
Matthias
21aba1620c
Replace calls to load_data
2018-12-15 14:10:33 +01:00
Matthias
432cc00283
Adjust imports to data.history
2018-12-14 06:32:49 +01:00
Matthias
3ac2106a16
Merge pull request #1290 from freqtrade/fix/backtest_toomanyopen
...
fix backtesting not respecting max_open_trades
2018-11-30 19:17:09 +01:00
Matthias
cc7b820978
Move hyperoptresolver to resolvers package
2018-11-24 20:14:08 +01:00
Matthias
805f509498
Merge branch 'develop' into fix/backtest_toomanyopen
2018-11-24 10:39:16 +01:00
Matthias
7757c53b06
Small fixes
2018-11-20 17:43:49 +01:00
Matthias
5dd013c3b1
Rename hyperopt interface and resolver
2018-11-20 17:40:45 +01:00
Matthias
4f800bfbc8
Fix pickling-error
2018-11-14 20:25:43 +01:00
Matthias
9cd2ed5a16
fix hyperopt get_timeframe mock
2018-11-09 07:13:20 +01:00
Matthias
96efd12a31
add new options to hyperopt
2018-11-09 07:12:41 +01:00
Matthias
7b62e71f23
Fix some tests and rebase issues
2018-11-07 20:45:52 +01:00
Stephen Dade
477515c4b5
Now using resolver for custom hyperopts
2018-11-07 06:58:20 +01:00
Stephen Dade
469db0d434
Decoupled custom hyperopts from hyperopt.py
2018-11-07 06:26:16 +01:00
Matthias
8a3272e7c5
don't copy tickerdata_to_dataframe into backtesting
...
it's used only once, so this does not make sense and hides the origin of
the function
2018-10-17 19:47:19 +02:00
Matthias
84622dc84b
Move test for strategy out of constructor
2018-09-29 14:23:53 +02:00
Matthias
1b290ffb5d
Update hyperopt to show errors if non-supported variables are used
2018-09-29 13:49:38 +02:00
Matthias
787d6042de
Switch from pair(str) to metadata(dict)
2018-07-29 20:56:23 +02:00
Matthias
5fbce13830
update hyperopt to use new methods
2018-07-29 20:55:40 +02:00
Matthias
98665dcef4
revert inadvertent wihtespace changes
2018-07-29 20:55:37 +02:00
Gert Wohlgemuth
0dcaa82c3b
fixed test?
2018-07-29 20:55:06 +02:00
Gert Wohlgemuth
3dd7d209e9
more test fixes
2018-07-29 20:55:06 +02:00
Gert Wohlgemuth
abc55a6e6b
fixing? hyperopt
2018-07-29 20:55:06 +02:00
Janne Sinivirta
0cc1b66ae7
Merge pull request #1037 from freqtrade/fix/backtest-comment
...
replace --realistic with 2 separate flags
2018-07-19 17:33:19 +03:00
Matthias
8f254031c6
Add short form for parameters, change default for hyperopt
2018-07-19 13:19:36 +02:00
Matthias
e17618407b
Rename --realistic-simulation to --enable-position-stacking
2018-07-17 20:26:59 +02:00
Janne Sinivirta
aeb4102bcb
refactor Analyze class methods to base Strategy class
2018-07-16 08:23:39 +03:00
Samuel Husso
7dca3c6d03
freqtradebot,main,hyperopt: fstrings in use
2018-07-05 10:11:29 -05:00
Janne Sinivirta
96bb2efe69
use joblib.dump and load for trials
2018-07-03 23:08:29 +03:00
Janne Sinivirta
c4a8435e00
change pickle file name to better suit it's current purpose
2018-07-03 22:17:43 +03:00
Janne Sinivirta
3a7056ea1b
run at least one epoch
2018-07-03 21:55:22 +03:00
Janne Sinivirta
2cde540645
remove dead code
2018-07-03 21:50:45 +03:00
Janne Sinivirta
ef59f9ad24
sort imports in hyperopt.py
2018-07-03 21:50:24 +03:00
Janne Sinivirta
ee4754cfb9
avoid re-serialization of whole dataframe
2018-07-03 14:49:58 +03:00
Janne Sinivirta
2713fdb860
use cpu count explicitly in job count
2018-07-03 11:46:56 +03:00
Janne Sinivirta
79aab4cce2
use fstring
2018-07-03 11:44:54 +03:00
Janne Sinivirta
fa8fc3e4ce
handle the case where we have zero buys
2018-07-02 11:46:55 +03:00
Janne Sinivirta
0ce08932ed
mypy fixes
2018-06-30 09:54:31 +03:00
Janne Sinivirta
0bddc58ec4
extract loading previous results to a method
2018-06-25 11:38:14 +03:00
Janne Sinivirta
118a43cbb8
fixing tests for hyperopt
2018-06-24 15:27:53 +03:00
Janne Sinivirta
642ad02316
remove unused import
2018-06-23 15:56:38 +03:00
Janne Sinivirta
ab9e2fcea0
fix guard names to match search space
2018-06-23 15:47:19 +03:00
Janne Sinivirta
136456afc0
add three triggers to hyperopting
2018-06-23 15:44:51 +03:00
Janne Sinivirta
e8f2e6956d
to avoid pickle problems, get rid of reference to exchange after initialization
2018-06-23 14:37:36 +03:00
Janne Sinivirta
a525cba8e9
switch signal handler to try catch. fix pickling and formatting output
2018-06-23 14:37:36 +03:00
Janne Sinivirta
8272120c3a
convert stoploss and ROI search spaces to skopt format
2018-06-23 14:37:36 +03:00
Janne Sinivirta
8fee2e2409
move result logging out from optimizer
2018-06-23 14:37:36 +03:00
Janne Sinivirta
c415014153
use multiple jobs in acq
2018-06-23 14:37:36 +03:00
Janne Sinivirta
964cbdc262
increase initial sampling points
2018-06-23 14:37:36 +03:00
Janne Sinivirta
a46badd5c0
reuse pool workers
2018-06-23 14:37:36 +03:00
Janne Sinivirta
0cb1aedf5b
problem with pickling
2018-06-23 14:37:36 +03:00
Janne Sinivirta
b485e6e0ba
start small
2018-06-23 14:37:36 +03:00
gcarq
78f50a1471
move logic from hyperopt to freqtrade.strategy
2018-06-23 14:37:36 +03:00
gcarq
5aae215c94
wrap strategies with HyperoptStrategy for module lookups with pickle
2018-06-23 14:37:36 +03:00
Matthias
a5511e2e30
Merge pull request #894 from freqtrade/feature/force_close_backtest
...
Display open trades after backtest period
2018-06-16 12:49:08 +02:00
Janne Sinivirta
0c85febe76
remove all mongodb related code
2018-06-16 09:09:28 +03:00
Janne Sinivirta
c1f8f641e6
remove use of hyperopt_conf.py
2018-06-16 09:09:28 +03:00
xmatthias
4710210cff
fix hyperopt to use new backtesting result tuple
2018-06-10 13:56:10 +02:00
xmatthias
7a34578b4d
refactor timerange to named tuple
2018-06-05 23:34:26 +02:00
xmatthias
50fc5f91ca
Merge branch 'develop' into mypy_typecheck
2018-06-03 10:35:56 +02:00
Janne Sinivirta
a657e3d24a
Merge pull request #826 from gcarq/fix/hyperopt-stake_currency
...
Fix stake_currency returned by Hyperopt …
2018-06-03 07:19:24 +03:00
Gerald Lonlas
fe8ff1b929
Fix stake_currency return by Hyperopt
...
Hyperopt had BTC hard coded in the result. This commit will display
the real stake_currency used.
If you used `"stake_currency": "USDT",` in your config file.
Before this commit you saw a message like:
"2 trades. Avg profit 0.13%. Total profit 0.00002651 BTC (0.0027Σ%). Avg duration 142.5 mins."
Now with the commit, we fix the wrong BTC currency:
"2 trades. Avg profit 0.13%. Total profit 0.00002651 USDT (0.0027Σ%). Avg duration 142.5 mins."
2018-06-02 14:07:31 -07:00
Gerald Lonlas
dc65753a64
Fix the in-progress dot that does not show up during a Hyperopt run
2018-06-02 12:35:07 -07:00
xmatthias
3447e4bb97
comment on ignore hint
2018-06-02 14:13:17 +02:00
xmatthias
0a595190a3
fix last typechecks
2018-06-02 13:59:35 +02:00
xmatthias
4a322abd4d
Typecheck improvements
2018-06-02 13:44:05 +02:00
xmatthias
3fb1dd02f1
add typehints and type: ignores
2018-05-31 22:00:46 +02:00