Commit Graph

5182 Commits

Author SHA1 Message Date
Matthias
81c8e8677d use 0 as profit mean, not nan 2020-07-03 06:58:27 +02:00
Matthias
480c5117f1 Handle empty return strings 2020-07-03 06:58:27 +02:00
Matthias
5fce7f3b22 Add market Change
closes #2524 and #3518
2020-07-03 06:58:27 +02:00
Matthias
cf044d166e Tests should use new Datetime format too 2020-07-03 06:58:27 +02:00
Matthias
fbddfaeacf Introduce DatetimePrintFormat 2020-07-03 06:58:27 +02:00
Matthias
cbcf3dbb43 Add more metrics to summarytable 2020-07-03 06:58:27 +02:00
Matthias
6922fbc3aa Add max_drawdown error handler 2020-07-03 06:58:27 +02:00
Matthias
455b26ea48 Add max drawdown to backtesting 2020-07-03 06:58:27 +02:00
Jean-Baptiste LE STANG
20e8a29262 Adding a dataprovider to the strategy before plotting
Fix flake8
2020-07-02 21:14:31 +02:00
Theagainmen
99ac2659f3 Init FIAT converter in api_server.py 2020-07-02 11:27:33 +02:00
Theagainmen
81850b5fdf AgeFilter add actual amount of days in log message (debug info) 2020-07-02 11:26:52 +02:00
Matthias
cf1bbb1afb
Merge pull request #3517 from freqtrade/rpc/winlossratio
Show winning vs. losing trades
2020-06-30 07:48:18 +02:00
Matthias
cf26ab1dd8
Merge pull request #3527 from Theagainmen/Warning_message2
Warning message bot is stopped and left open trades
2020-06-30 07:48:02 +02:00
Matthias
c2a6f70b4c Merge branch 'develop' into keep_dataframe_noapi 2020-06-30 07:46:52 +02:00
hroff-1902
8a2f631ddd
Merge pull request #3531 from freqtrade/exchange_errorhandling
Improve exchange errorhandling and API backoff
2020-06-30 07:53:09 +03:00
hroff-1902
02c0488d45
Merge pull request #3453 from freqtrade/fix/3363
Backtesting should load pairlists after the strategy
2020-06-29 21:53:33 +03:00
Matthias
b95065d701 Log backoff 2020-06-29 20:00:42 +02:00
Matthias
4d9ecf137b Fix failing test in python 3.7
can't use Magicmock in 3.7 (works in 3.8 though).
2020-06-28 20:38:28 +02:00
Matthias
c6124180fe Fix bug when fetching orders fails 2020-06-28 19:45:42 +02:00
Matthias
6362bfc36e Fix calculate_backoff implementation 2020-06-28 19:41:21 +02:00
Matthias
cbcbb4bdb5 Rename get_stoploss_order to fetch_stoploss_order (align with fetch_order) 2020-06-28 16:30:24 +02:00
Matthias
92c70fb903 Rename get_order to fetch_order (to align to ccxt naming) 2020-06-28 16:27:35 +02:00
Matthias
e040c518ca Dynamic backoff on DDos errors 2020-06-28 16:19:12 +02:00
Matthias
bf61bc9d83 Introduce ExchangeError 2020-06-28 16:01:40 +02:00
Matthias
e74d2af857 Have TemporaryError a subCategory of DependencyException
so it's safe to raise out of the exchange
2020-06-28 15:44:58 +02:00
Matthias
5bd4798ed0 Add retrier to stoploss calls (but without retrying) 2020-06-28 11:56:29 +02:00
Matthias
2c45114a64 Implement DDos backoff (1s) 2020-06-28 11:17:06 +02:00
Theagainmen
118f051171 Added message in cleanup and fixes 2020-06-28 11:02:50 +02:00
Theagainmen
e5676867a8 Trying to fix flake8 errors 2020-06-27 21:53:12 +02:00
Theagainmen
b938c536fa Trying to fix flake8 errors 2020-06-27 21:46:53 +02:00
Theagainmen
48289e8ca7 Added exchange name, removed capital letters 2020-06-27 20:24:50 +02:00
Theagainmen
0642ab76bf Added information to the new function 2020-06-27 18:40:44 +02:00
Theagainmen
e813573f27 Warning message for open trades when stopping bot 2020-06-27 18:35:46 +02:00
Matthias
865b73a456
Merge pull request #3520 from freqtrade/rpc/cors_setting
Fix RPC Cors
2020-06-27 15:38:40 +02:00
hroff-1902
cc24f44636
Merge pull request #3519 from freqtrade/fix/trades_download_older
dl-trades should also support increasing download span
2020-06-27 00:08:10 +03:00
Matthias
6734269bfc Use >= to compare for winning trades 2020-06-25 19:22:50 +02:00
gambcl
ab7f5a2bcf Added pairslist AgeFilter 2020-06-24 23:58:12 +01:00
Matthias
b77a105778 Add CORS_origins key to configuration 2020-06-24 20:32:19 +02:00
Matthias
676006b99c --dl-trades should also support increasing download span
(by downloading the whole dataset again to avoid missing data in the
middle).
2020-06-24 17:40:23 +02:00
gambcl
3624aec059 Typos 2020-06-24 15:21:28 +01:00
Matthias
0509b9a8fc Show winning vs. losing trades 2020-06-24 06:43:19 +02:00
Matthias
f976905728 Fix more exchange message typos 2020-06-18 20:00:18 +02:00
Matthias
45ffb26910 Merge branch 'develop' into pr/hroff-1902/3478 2020-06-18 19:54:46 +02:00
Matthias
eef3c01da7 Fix function header formatting 2020-06-18 19:49:05 +02:00
Matthias
f1993fb2f4 Pass analyzed dataframe to get_signal 2020-06-18 08:09:52 +02:00
Matthias
48225e0d80 Improve interface docstrings for analyze functions 2020-06-18 07:54:00 +02:00
Matthias
f2a778d294 Combine tests for empty dataframe 2020-06-18 07:03:30 +02:00
Matthias
ab9382434f Add test for get_analyzed_dataframe 2020-06-18 06:50:06 +02:00
Matthias
8b186dbe0e Add additional test scenarios 2020-06-18 06:50:06 +02:00
Matthias
84329ad2ca Add confirm_trade* methods to abort buying or selling 2020-06-18 06:50:06 +02:00
Matthias
910100f1c8 Improve docstring comment 2020-06-18 06:50:06 +02:00
Matthias
dea7e3db01 Use supress_errors in strategy wrapper - ensure it's called once 2020-06-18 06:50:06 +02:00
Matthias
c047e48a47 Add errorsupression to safe wrapper 2020-06-18 06:50:06 +02:00
Matthias
bc821c7c20 Add documentation for bot_loop_start 2020-06-18 06:50:06 +02:00
Matthias
77056a3119 Add bot_loop_start callback 2020-06-18 06:50:06 +02:00
Matthias
8166b37253 Explicitly check if dp is available 2020-06-18 06:50:06 +02:00
Matthias
55fa514ec9 Adapt most tests 2020-06-18 06:50:05 +02:00
Matthias
273aaaff12 Introduce .analyze() function for Strategy
Fixing a few tests along the way
2020-06-18 06:50:05 +02:00
Matthias
95f3ac08d4 Update some comments 2020-06-18 06:50:05 +02:00
Matthias
9794914838 store dataframe updated as tuple 2020-06-18 06:50:05 +02:00
Matthias
fd97ad9b76 Cache analyzed dataframe 2020-06-18 06:50:05 +02:00
Matthias
d4fb5af456 Also reload async markets
fixes #2876 - Logs and Empty ticker history  for new pair
2020-06-17 07:23:20 +02:00
Matthias
3517c86fa2 Fail if both ticker_interval and timeframe are present in a
configuration

Otherwise the wrong might be used, as it's unclear which one the intend
of the user is
2020-06-16 16:02:38 +02:00
Matthias
0b2982caed Merge branch 'develop' into hyperopt_colorama_init 2020-06-16 10:16:41 +02:00
Matthias
761407f74d
Merge pull request #3430 from freqtrade/timeframe
ticker_interval -> timeframe
2020-06-15 13:47:26 +02:00
Matthias
dfc44e5b32
Merge pull request #3461 from felpasl/format_minimal_roi_opt
change hyperopt output to print ready to copy to strategy
2020-06-15 10:03:28 +02:00
Matthias
a3506f4d8e Merge branch 'develop' into timeframe 2020-06-15 06:35:55 +02:00
Matthias
d337fb6c6a Update some comments 2020-06-15 06:35:31 +02:00
Matthias
f80b5f9410
Merge pull request #3438 from freqtrade/ftx_stoploss
Ftx stoploss
2020-06-14 07:02:15 +02:00
Matthias
f6f7c99b9c
Adjust typography and add missing space
Co-authored-by: hroff-1902 <47309513+hroff-1902@users.noreply.github.com>
2020-06-14 06:31:05 +02:00
hroff-1902
de36f3d850 Cosmetics in freqtradebot 2020-06-14 01:42:45 +03:00
hroff-1902
4660909e95 Validate stoploss_on_exchange_limit_ratio at startup time 2020-06-14 01:07:00 +03:00
hroff-1902
be03c22dba Minor: Fix exception message 2020-06-14 00:35:58 +03:00
hroff-1902
ea77edce05
Make flake happy 2020-06-13 18:54:54 +03:00
Matthias
d52198d15e
Merge pull request #3468 from hroff-1902/cleanup_async_markets
Cleanup async markets
2020-06-13 17:28:11 +02:00
hroff-1902
3d9b107761
Changes after review 2020-06-13 17:12:37 +03:00
hroff-1902
37bc2d28ad Revert "Remove _load_async_markets"
This reverts commit 6744f8f052.
2020-06-13 13:34:29 +03:00
hroff-1902
12d3a234c1
Merge pull request #3471 from freqtrade/fix/3465
Fix exception with stacktrace in test-pairlist
2020-06-12 07:57:37 +03:00
Matthias
1e7826f392 Explicitly raise OperationalException if markets are not loaded
correctly
2020-06-10 19:57:59 +02:00
Felipe Lambert
69ac5c1ac7 change hyperopt return to better copy to strategy file 2020-06-10 14:35:31 -03:00
Theagainmen
8c9dea988c Now supports both commands & fixed test 2020-06-10 19:28:02 +02:00
Theagainmen
043397c5d7 reload_conf & reload_config now both accepted, code is more consistent now 2020-06-10 19:28:02 +02:00
Theagainmen
04fa597695 Test with multiple commands in one line 2020-06-10 19:28:02 +02:00
Theagainmen
ac92834693 reload_conf & reload_config now both accepted, code is more consistent now 2020-06-10 19:28:02 +02:00
hroff-1902
0067a3ab7c Change logging level 2020-06-10 06:30:29 +03:00
hroff-1902
7d451638a8 Make _reload_markets() public 2020-06-10 01:39:23 +03:00
hroff-1902
6744f8f052 Remove _load_async_markets 2020-06-10 01:22:55 +03:00
Matthias
ab0003f565 fix #3463 by explicitly failing if no stoploss is defined 2020-06-09 14:33:57 +02:00
Matthias
72ae4b1500 Load pairlist after strategy to use strategy-config
fail in certain conditions when using strategy-list

Fix #3363
2020-06-07 16:15:26 +02:00
Matthias
a75b94f143 use bracket notation for dataframe access 2020-06-07 15:40:00 +02:00
Matthias
68395d2745 Use bracket notation to query results in hyperopt 2020-06-07 15:39:59 +02:00
Matthias
3f9ab0846d Rename profitperc to profit_percent 2020-06-07 15:39:59 +02:00
Matthias
04779411f5 Add docstring to backtest_stats 2020-06-07 15:39:59 +02:00
Matthias
070913f327 Rename text_table generation 2020-06-07 11:35:02 +02:00
Matthias
499c6772d1 Rename tabulate methods
they don't "generate" anything
2020-06-07 11:31:33 +02:00
Matthias
a6f6724752 Reorder functions in optimize_report 2020-06-07 11:29:14 +02:00
Matthias
db4576c50b Use json for *strategy dump 2020-06-07 10:09:39 +02:00
Matthias
8d8cf5a2fd Improve code formatting of telegram 2020-06-06 17:28:00 +02:00
Matthias
ed1268cf39 Merge branch 'develop' into ask_strategy_verbosity 2020-06-06 17:23:19 +02:00
Matthias
6aed16c146
Merge pull request #3448 from Theagainmen/Telegram_emojis_V2
Added emoji's to the Telegram RPC
2020-06-06 17:22:56 +02:00
Matthias
3bd38171f8 DOn't use json.dumps - it's not necessary 2020-06-06 17:19:44 +02:00
Theagainmen
172ca761f2 Fixed typo 'emoij' 2020-06-06 17:11:47 +02:00
Matthias
b2316cdd00 Extract sell_smoij logic into it's own function 2020-06-06 17:11:47 +02:00
hroff-1902
a86863c032
Merge pull request #3440 from freqtrade/rpc_status_fields
Rpc status fields
2020-06-05 23:59:01 +03:00
Matthias
8c32d691c7 Add information about bid and ask strategy to /showconfig 2020-06-05 20:31:40 +02:00
Matthias
5f9994c9ed Reduce verbosity of sell-rate fetching 2020-06-05 20:24:21 +02:00
Theagainmen
f34bcc5fd3
Splitted a line that was too long, resulting in error for flake8 2020-06-05 20:15:22 +02:00
Theagainmen
4c6a7a354d
Removed '.encode' lines, unessecary 2020-06-05 20:04:11 +02:00
Theagainmen
080efd1102
Added unicoded emoji's to Telegram messages 2020-06-05 19:09:49 +02:00
Matthias
7bd55aa2f1 Use correct calcuation for "locked in profit" 2020-06-04 07:04:32 +02:00
Matthias
412b50dac5 Add current stoploss calculations 2020-06-04 06:59:48 +02:00
Matthias
0dc1a8e037 Add profit sum to api response 2020-06-03 19:40:30 +02:00
Matthias
f0eb0bc350 Support limit orders 2020-06-03 06:11:34 +02:00
Matthias
77a62b845a Fix some comments 2020-06-03 06:11:34 +02:00
Matthias
1d9aeef792 Support stop order in persistence 2020-06-03 06:11:34 +02:00
Matthias
b58fd179f2 Don't hardcode pair ... 2020-06-03 06:11:34 +02:00
Matthias
11ebdefd09 Fix bug after rebase 2020-06-03 06:11:34 +02:00
Matthias
f83c1c5abf Use get_stoploss_order and cancel_stoploss_order
This allows exchanges to use stoploss which don't have the same
endpoints
2020-06-03 06:11:34 +02:00
Matthias
68a59fd26d Add Hint to suggest this is still broken 2020-06-03 06:11:34 +02:00
Matthias
78dea19ffb Implement first version of FTX stop 2020-06-03 06:11:34 +02:00
hroff-1902
04a2fb16aa
Merge pull request #3433 from freqtrade/fix/cost_calc_crash
Free trades should not crash the bot
2020-06-02 22:20:29 +03:00
Matthias
a2551daf12 Fix ZeroDivision problem where cost is 0.0 2020-06-02 20:55:12 +02:00
Matthias
08049d23b4 Use "market_is_tradable" for whitelist validation 2020-06-02 20:41:29 +02:00
Matthias
b74a3addc6 Update tests 2020-06-02 20:30:31 +02:00
Matthias
b22e3a67d8 rename symbol_is_pair to market_is_tradable
Make it part of the exchange class, so subclasses can override this
2020-06-02 20:29:50 +02:00
Matthias
8550c3e43f
Merge pull request #3409 from hroff-1902/exchange_logging
Minor: Better exchange debug logging
2020-06-02 20:27:53 +02:00
hroff-1902
48117666fe
Update freqtrade/exchange/exchange.py
Co-authored-by: Matthias <xmatthias@outlook.com>
2020-06-02 21:09:23 +03:00
Matthias
02fca141a0 Readd ticker_interval to trade api response 2020-06-02 19:43:15 +02:00
Matthias
ca2352921f
Merge pull request #3432 from hroff-1902/fix/3404
Fix crash in #3404
2020-06-02 19:13:58 +02:00
hroff-1902
f4c2bb1346 Fix crash in #3404 2020-06-02 19:37:08 +03:00
hroff-1902
85fedf95e8 Make mypy happy 2020-06-02 18:43:37 +03:00
hroff-1902
9995a5899f
Fix merge 2020-06-02 16:25:22 +03:00
hroff-1902
64881a94e2
Merge branch 'develop' into timeframe 2020-06-02 15:56:34 +03:00
hroff-1902
4c82f127b3
Merge pull request #3419 from freqtrade/api_trade_response
Api trade response
2020-06-02 15:53:58 +03:00
hroff-1902
2cc47f651d
Merge pull request #3408 from freqtrade/apiserver_logging
Apiserver logging
2020-06-02 14:32:44 +03:00
Matthias
a8005819c9 Add class-level attributes to hyperopt and strategy 2020-06-02 10:19:27 +02:00
Matthias
33b7046260 Update more documentation 2020-06-02 10:06:42 +02:00
Matthias
f9bb1a7f22 Update more occurances of ticker_interval 2020-06-02 10:02:55 +02:00
Matthias
af0f29e6b7 Update persistence to use timeframe 2020-06-02 10:02:36 +02:00
Matthias
09fe3c6f5e create compatibility code 2020-06-02 09:52:30 +02:00
Matthias
3e895ae74a Some more replacements of ticker_interval 2020-06-02 09:41:42 +02:00
Matthias
947903a4ac Use timeframe from within strategy 2020-06-02 09:36:04 +02:00
hroff-1902
aff80d7331
Merge pull request #3417 from freqtrade/bt_result_store_metrics
Refactor result store metrics
2020-06-02 04:31:37 +03:00
hroff-1902
5435df84bd
Merge pull request #3387 from freqtrade/rpc_blacklist
Improve RPC Blacklist by adding feedback
2020-06-02 04:10:33 +03:00
hroff-1902
4c2228a2da
Merge pull request #3399 from freqtrade/fix_sell_rate_caching
[minor] Fix sell rate caching
2020-06-02 04:04:16 +03:00
hroff-1902
7b9bb5ba3d
Merge pull request #3425 from freqtrade/sell_rate_raise_empty
Verify sell-rate returns a value.
2020-06-02 02:22:56 +03:00
Matthias
388573800c Update configuration messages 2020-06-01 20:52:33 +02:00
Matthias
cadc50ce9b Replace more occurances of ticker_interval with timeframe 2020-06-01 20:49:40 +02:00
Matthias
b2c241e607 Replace ticker_interval in all rpc files 2020-06-01 20:43:20 +02:00
Matthias
898def7f6c Remove ticker_interval from exchange 2020-06-01 20:39:01 +02:00
Matthias
009ea0639f Exchange some occurances of ticker_interval 2020-06-01 20:33:26 +02:00
Matthias
b2025597aa Build-commands should write timeframe instead of ticker interval 2020-06-01 20:16:22 +02:00
Matthias
3139343946 Remove capital_available_percentage and raise instead 2020-06-01 19:58:28 +02:00
Matthias
c35f9f8d39 Verify sell-rate got a value - otherwise downstream code does not work.
Using PricingException here will cease operation for this pair for this
iteration - postponing handling to the next iteration - where hopefully
a price is again present.
2020-06-01 19:45:37 +02:00
Matthias
d2b7016dff Add stop_loss_abs ... 2020-06-01 11:05:37 +02:00
Matthias
adde1cfee2 Add stoplosss_ratio and initial_stoploss_ratio 2020-06-01 10:53:02 +02:00
Matthias
d9afef8fe1 Move colorama_init to where it was 2020-06-01 09:37:10 +02:00
Matthias
ffa93377b4 Test colorama init again (after the fixes done to progressbar) 2020-06-01 09:34:03 +02:00
Matthias
091693308a Correctly call show_backtest_results 2020-06-01 09:25:26 +02:00
Matthias
ceaf32d304 Extract backtesting report generation from show_backtest_Results 2020-06-01 09:24:05 +02:00
Matthias
f202e09b10 Extract conversion to trades list to it's own function 2020-06-01 08:57:31 +02:00
hroff-1902
123a556ec8 Better exchange logging 2020-05-31 13:05:58 +03:00
Matthias
dc7f0f1187 Add api-server to default config samples 2020-05-31 09:57:31 +02:00
Matthias
7ad1c7e817 Allow lower verbosity level for api server
Not logging all calls makes sense when running the UI
otherwise this is VERY verbose, clogging up the log.
2020-05-31 09:51:45 +02:00
hroff-1902
84c50bf16c
Merge pull request #3390 from freqtrade/rpc/profit
improve /profit to not raise an exception if no trade is closed
2020-05-30 22:06:22 +03:00
hroff-1902
96aab86e45
Merge pull request #3405 from freqtrade/remove_internals_ref
Disabledataframecheck is not in internals and does not belong there
2020-05-30 22:02:49 +03:00
hroff-1902
a162b911b6
Merge pull request #3398 from freqtrade/ccxt_config_combine
combine CCXT configurations ...
2020-05-30 21:49:44 +03:00
Matthias
cc90e7b413 Show "No trades yet." when no trade happened yet 2020-05-30 19:49:16 +02:00
Matthias
91f84f1a43 Fix typo in close trade message 2020-05-30 19:28:30 +02:00
Matthias
908449640a Disabledataframecheck is not in internals and does not belong there 2020-05-30 19:17:17 +02:00
hroff-1902
36c7089a03
Merge pull request #3394 from freqtrade/disable_dataframechecks
Allow changing severity of strategy-validations to log only.
2020-05-30 19:28:38 +03:00
Matthias
376c536dd1 Revert "Add disable_dataframe_checks to strategy templates"
This reverts commit a9c57e5147.
2020-05-30 16:23:33 +02:00
Matthias
a9c57e5147 Add disable_dataframe_checks to strategy templates 2020-05-30 11:47:09 +02:00
Matthias
97905f86be Add missing fields to to_json output of trade 2020-05-30 11:34:39 +02:00
Matthias
57e951dbce Add orderbook sell rate to sell_rate_cache 2020-05-30 11:08:56 +02:00
Matthias
f187753f8f Add ccxt_sync_config to simplify ccxt configuration 2020-05-30 10:45:50 +02:00
Matthias
f3824d970b Use dict for symbol_is_pair 2020-05-29 20:20:06 +02:00
Matthias
ea5daee505 Allow changing severity of strategy-validations to log only. 2020-05-29 19:37:18 +02:00
Matthias
9f8b21de4a
Merge pull request #3358 from hroff-1902/refactor_generate_pairlist
Split the pairlist generation logic and filtering
2020-05-29 14:16:15 +02:00
hroff-1902
a4cf9ba85b Move check for position for StaticPairList to init 2020-05-29 12:40:05 +03:00
Matthias
46456516bb Remove exception handler 2020-05-29 10:11:23 +02:00
Matthias
1d6e3fea85 Update /profit telegram message to support non-closed trades 2020-05-29 09:38:12 +02:00
Matthias
6261aef314 Return /profit even if no trade is closed 2020-05-29 09:03:48 +02:00
Matthias
7df786994d Plotting should not fail if one pair didn't produce any trades 2020-05-28 19:36:10 +02:00
Matthias
7399c7e70c Provide blacklist feedback to telegram 2020-05-28 07:04:06 +02:00
Matthias
0e8f95effd Improve blacklist adding with proper feedback 2020-05-28 06:51:53 +02:00
hroff-1902
0234e4d293
Merge pull request #3369 from freqtrade/align_trade_outputs
Improve some api results
2020-05-27 22:56:15 +03:00
Matthias
04eb11bb5d
Merge pull request #3377 from freqtrade/btreport_refactor
Refactor BTReport
2020-05-27 19:33:08 +02:00
Matthias
18a5787a2c
Reorder typing imports
Co-authored-by: hroff-1902 <47309513+hroff-1902@users.noreply.github.com>
2020-05-27 19:17:15 +02:00
Matthias
b2125bd6ee check for None to allow 0.0 profit 2020-05-27 19:15:56 +02:00
Matthias
f4af4cc2b2 Small formatting improvement 2020-05-27 07:11:59 +02:00
Matthias
8c87fcdae3 Rename PricingException to PricingError 2020-05-26 20:35:11 +02:00
Matthias
16cd1f06b2 Rename get_order_book to fetch_l2_order_book (aligning to ccxt) 2020-05-26 20:27:35 +02:00
Matthias
7a7b26e840 Add exception handlers for orderbook logic 2020-05-26 20:14:05 +02:00
Matthias
76e4e5897f Introduce pricing exception 2020-05-26 20:08:01 +02:00
Matthias
3e3cce4559 Use pct instead of _perc 2020-05-26 19:25:03 +02:00
Matthias
27e0c2604c
Add comment to ensure we're not accidentally removing this again 2020-05-26 16:58:29 +02:00
hroff-1902
9f573481a8 Fix #3378 2020-05-26 13:54:45 +03:00
Matthias
18d2587800 Address feedback 2020-05-26 06:12:25 +02:00
hroff-1902
a484124272 Raise exception if StaticPairList on a non-first position 2020-05-25 23:14:51 +03:00