Jirka Borovec
aba212341a
formatting 4/n: Trainer ( #5720 )
...
* yapf trainer
* Apply suggestions from code review
Co-authored-by: Rohit Gupta <rohitgr1998@gmail.com>
* .
* fix
Co-authored-by: Rohit Gupta <rohitgr1998@gmail.com>
2021-02-03 09:25:42 +00:00
Carlos Mocholí
aa03b73e60
Remove psf/black references ( #5739 )
...
* Update pyproject.toml
* Update setup.cfg
* Update test.txt
* Update CONTRIBUTING.md
* Update requirements/test.txt
2021-02-03 08:37:06 +00:00
Carlos Mocholí
dca3b19e59
Add yapf to pre-commit ( #5747 )
2021-02-02 15:03:36 +01:00
yuntai
50fd4879a9
Update metrics to use Enum ( #5689 )
...
- Add DataType, AverageMethod and MDMCAverageMethod
2021-02-01 13:50:10 -05:00
Adrian Wälchli
8943d8bca0
add missing logic to new plugins and accelerator ( #5734 )
...
* add missing logic
* missed imports
* import fixes
* isort
* mv f
* changelog
* format
* move helper to parallel plugin
* d
2021-02-01 13:23:53 -05:00
Adrian Wälchli
344f3a984a
Refactor access to trainer attributes in LightningModule ( #5730 )
...
* rank access
* tests for property
* weekref
* logger
* changelog
* torchscript
* changelog
* chlog
* .
* amp
* yapf
* flake8
Co-authored-by: Jirka Borovec <jirka.borovec@seznam.cz>
2021-02-01 14:28:17 +00:00
Justus Schock
9064b83caf
Accelerator Refactor/RPC + Sharded ( #5732 )
...
Co-authored-by: Jirka Borovec <Borda@users.noreply.github.com>
Co-authored-by: Jirka Borovec <jirka.borovec@seznam.cz>
2021-02-01 14:49:15 +01:00
Justus Schock
b3ebc18bcb
Hardware specific parts of Accelerator Refactoring ( #5719 )
...
* add basic accelerator class.
Co-Authored with @awaelchi
* pep8
Co-authored-by: @awaelchi
* add cpu accelerator
Co-authored-by: Adrian Wälchli <aedu.waelchli@gmail.com>
* add gpu accelerator
Co-authored-by: Adrian Wälchli <aedu.waelchli@gmail.com>
* add tpu accelerator
Co-authored-by: Adrian Wälchli <aedu.waelchli@gmail.com>
* add accelerator connector
Co-authored-by: Adrian Wälchli <aedu.waelchli@gmail.com>
* add single device training
Co-authored-by: Adrian Wälchli <aedu.waelchli@gmail.com>
* add single tpu
Co-authored-by: Adrian Wälchli <aedu.waelchli@gmail.com>
* add tpu spawn
Co-authored-by: Adrian Wälchli <aedu.waelchli@gmail.com>
* make on_colab_kaggle utility func
* add basic accelerator class.
Co-Authored with @awaelchi
* pep8
Co-authored-by: @awaelchi
* add cpu accelerator
Co-authored-by: Adrian Wälchli <aedu.waelchli@gmail.com>
* add gpu accelerator
Co-authored-by: Adrian Wälchli <aedu.waelchli@gmail.com>
* add tpu accelerator
Co-authored-by: Adrian Wälchli <aedu.waelchli@gmail.com>
* add accelerator connector
Co-authored-by: Adrian Wälchli <aedu.waelchli@gmail.com>
* add single device training
Co-authored-by: Adrian Wälchli <aedu.waelchli@gmail.com>
* add single tpu
Co-authored-by: Adrian Wälchli <aedu.waelchli@gmail.com>
* add tpu spawn
Co-authored-by: Adrian Wälchli <aedu.waelchli@gmail.com>
* make on_colab_kaggle utility func
* fixes
* move
* yapf
* .
* .
* .
* flake8
* sync accelerator connector changes from dev1.2
* changelog
* fix tpu handling
* tpu
* aval
* yapf
* Update pytorch_lightning/plugins/training_type/tpu_spawn.py
Co-authored-by: chaton <thomas@grid.ai>
* Update pytorch_lightning/accelerators/accelerator_connector.py
Co-authored-by: chaton <thomas@grid.ai>
* Update pytorch_lightning/plugins/training_type/tpu_spawn.py
Co-authored-by: chaton <thomas@grid.ai>
* Update tpu_spawn.py
* Update pytorch_lightning/accelerators/accelerator_connector.py
Co-authored-by: chaton <thomas@grid.ai>
* indentation
Co-authored-by: Adrian Wälchli <aedu.waelchli@gmail.com>
Co-authored-by: Jirka Borovec <jirka.borovec@seznam.cz>
Co-authored-by: chaton <thomas@grid.ai>
2021-02-01 08:34:59 -05:00
Jirka Borovec
963c17b669
formatting 6/n: metrics ( #5722 )
...
* yapf metrics
* op
2021-02-01 09:24:07 +01:00
Justus Schock
069ae27cef
Accelerator Refactor: Precision Plugins ( #5718 )
...
* add basic accelerator class.
Co-Authored with @awaelchi
* add basic trainign type plugin.
Co-Authored with @awaelchi
* pep8
Co-authored-by: @awaelchi
* update copyright
Co-authored-by: Adrian Wälchli <aedu.waelchli@gmail.com>
* add apex_amp
Co-authored-by: Adrian Wälchli <aedu.waelchli@gmail.com>
* add mixed base class
Co-authored-by: Adrian Wälchli <aedu.waelchli@gmail.com>
* add native amp
Co-authored-by: Adrian Wälchli <aedu.waelchli@gmail.com>
* add native amp sharded
Co-authored-by: Adrian Wälchli <aedu.waelchli@gmail.com>
* add tpu bfloat
Co-authored-by: Adrian Wälchli <aedu.waelchli@gmail.com>
* add inits
Co-authored-by: Adrian Wälchli <aedu.waelchli@gmail.com>
* Update precision_plugin.py
Co-authored-by: Adrian Wälchli <aedu.waelchli@gmail.com>
2021-01-31 13:12:02 -05:00
Adrian Wälchli
3bacac7734
accelerator refactor - add parallel plugins ( #5714 )
...
Co-authored-by: Justus Schock <12886177+justusschock@users.noreply.github.com>
2021-01-31 07:48:14 -05:00
Adrian Wälchli
692f77b8a7
Refactor LightningDataParallel ( #5670 )
...
* module
* fix model access
* scalar conversion
* refactor
* kwargs
* auto unsqueeze
* refactor code duplication
* clean up
* docs
* update dp docs
* changelog
* generalize test
* test
* rename
* warning cache
* isort
* unsqueezing test
* device
* device
* scalar test
* device
* device
* include coverage of overrides
* clear
* add deprecation test
* docs
* improve coverage
* increase coverage
* fix merge
* extend test
* rename base class
* mention the predict method in docs
* combine iteration over collection
* remove override
* move
* line
* Apply suggestions from code review
* fix running stage
* f401
* fix cyclic import
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Jirka Borovec <Borda@users.noreply.github.com>
2021-01-31 06:08:16 -05:00
Justus Schock
5d239ccd70
Base classes for accelerator refactoring ( #5715 )
...
* add basic accelerator class.
Co-Authored with @awaelchi
* Add base plugin class.
Co-authored with @awaelchi
* add basic trainign type plugin.
Co-Authored with @awaelchi
* add basic precision plugin.
Co-Authored with @awaelchi
* Add missing inits.
Co-authored with @awaelchi
* pep8
Co-authored-by: @awaelchi
* ignore flake8
* coverage omit
* imports in init
* lost
* imports
* flake8
* .
* .
* chlog
* Update pytorch_lightning/plugins/training_type/training_type_plugin.py
Co-authored-by: Jirka Borovec <Borda@users.noreply.github.com>
* Update pytorch_lightning/plugins/training_type/training_type_plugin.py
Co-authored-by: Jirka Borovec <Borda@users.noreply.github.com>
* Update pytorch_lightning/plugins/training_type/training_type_plugin.py
Co-authored-by: Jirka Borovec <Borda@users.noreply.github.com>
* Update pytorch_lightning/plugins/training_type/training_type_plugin.py
Co-authored-by: Jirka Borovec <Borda@users.noreply.github.com>
* Update pytorch_lightning/plugins/training_type/training_type_plugin.py
Co-authored-by: Jirka Borovec <Borda@users.noreply.github.com>
* Update pytorch_lightning/plugins/training_type/training_type_plugin.py
Co-authored-by: Jirka Borovec <Borda@users.noreply.github.com>
* Update pytorch_lightning/plugins/training_type/training_type_plugin.py
Co-authored-by: Jirka Borovec <Borda@users.noreply.github.com>
Co-authored-by: Adrian Wälchli <aedu.waelchli@gmail.com>
Co-authored-by: Jirka Borovec <jirka.borovec@seznam.cz>
Co-authored-by: Jirka Borovec <Borda@users.noreply.github.com>
2021-01-30 14:55:28 -05:00
Jirka Borovec
fca927288c
Refactor: drop LoggerStages ( #5673 )
...
* drop LoggerStages
* chlog
2021-01-30 15:59:18 +01:00
Jirka Borovec
eee38d59e7
formatting to PL utils ( #5713 )
...
* yapf pl base
* over
* dist
* utils
* Apply suggestions from code review
* flake8
* neew way
2021-01-30 15:28:59 +01:00
Jirka Borovec
21d313edc5
yapf examples ( #5709 )
2021-01-30 10:17:12 +00:00
Jirka Borovec
07f24d2438
add nvidia docker image ( #5668 )
...
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2021-01-29 11:01:03 -05:00
Nicki Skafte
a17c941cc4
LR scheduler docs update ( #5678 )
...
* doc updates
* typo suggestions by rohit
Co-authored-by: Rohit Gupta <rohitgr1998@gmail.com>
* Apply suggestions from code review
Co-authored-by: Adrian Wälchli <aedu.waelchli@gmail.com>
* update based on suggestions
Co-authored-by: Adrian Wälchli <aedu.waelchli@gmail.com>
Co-authored-by: Rohit Gupta <rohitgr1998@gmail.com>
2021-01-29 10:08:29 +01:00
Jirka Borovec
817a41d635
drop bots ( #5679 )
2021-01-28 03:04:49 -05:00
Jirka Borovec
99ea2a3b35
define Yapf config ( #5591 )
...
* define YAPF
* add check
* add check
* add temp ignore
* apply yapf
* ex
2021-01-27 21:58:33 -05:00
chaton
3da28fd634
[feat] 1/2 Add trainer.predict ( #5579 )
...
* start adding predict
* add predict
* resolve test
* add predict
* remove limit_predict
* update
* add test for predict
* typo
* update on comments
* remove predict_step
* update ddp_shareded
* check ddp_sharded
* resolve on comments
* resolve isort
* update dp
* add test dp 1 gpu
* made default forward
* resolve path
* resolve bug
* update on comments
* resolve doc
* resolve bug
* update
* resolve bug
* update on comments
* resolve pep8
* update test doc
* update on comments
* solve special tests
* resolve bug
* resolve flake8
* Update pytorch_lightning/callbacks/progress.py
Co-authored-by: Carlos Mocholí <carlossmocholi@gmail.com>
* Update pytorch_lightning/trainer/trainer.py
Co-authored-by: Carlos Mocholí <carlossmocholi@gmail.com>
* add predict to LightningModule
* missing predict
* typo
* rename is_prediction to _predicting
* add
* update
* update
* update doc
Co-authored-by: Carlos Mocholí <carlossmocholi@gmail.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2021-01-27 11:38:14 -05:00
Nicki Skafte
221c4a0ba2
[Metrics] AUC/AUROC class interface ( #5479 )
...
* base files
* auc done
* init files
* auc class interface
* fixing auc
* more fixes
* working auroc
* update auc
* add docs
* remove leftovers from merge
* suggestions
* fix f-string
* Apply suggestions from code review
Co-authored-by: Jirka Borovec <Borda@users.noreply.github.com>
* add deprecated tests
* make logic clearer
* Update pytorch_lightning/metrics/classification/auroc.py
Co-authored-by: Jirka Borovec <Borda@users.noreply.github.com>
* fix
* fix
* fix docs
* fix isort
* fix deprecated test
* fix tests
* fix tests
* fix isort
* Apply suggestions from code review
* add enum
* deprecate old impl
* update from suggestions
* chlog
Co-authored-by: Jirka Borovec <Borda@users.noreply.github.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Co-authored-by: Jirka Borovec <jirka.borovec@seznam.cz>
2021-01-27 08:16:54 -05:00
Arnaud Gelas
8dfcc078c4
Fix isort failures in core ( #5526 )
...
Remove from skipped module in pyproject.toml and fix failures on:
- pytorch_lightning/core/*.py
2021-01-27 05:02:16 -05:00
chaton
d0aaf983b9
[Feat] Adding PruningCallback ( #5618 )
...
* wip
* add pruning callback
* add condition for duplicated weights
* update on comments
* update on comments
* update on comments
* add more tests
* resolve flake8
* resolve on comments
* update changelog
* update on comments
* update on comments
* change order
* remove ddp_spawn skip
* update
* typo
* Update pytorch_lightning/callbacks/pruning.py
Co-authored-by: Jirka Borovec <Borda@users.noreply.github.com>
* Update pytorch_lightning/callbacks/pruning.py
Co-authored-by: Jirka Borovec <Borda@users.noreply.github.com>
* update on comments
* forgot platform
* update on comments
* remove @rank_zero_only
Co-authored-by: Jirka Borovec <Borda@users.noreply.github.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2021-01-27 01:00:42 -05:00
Jirka Borovec
7e2e874d95
Refactor: legacy accelerators and plugins ( #5645 )
...
* tests: legacy
* legacy: accel
* legacy: plug
* fix imports
* mypy
* flake8
2021-01-26 20:04:36 -05:00
Carlos Mocholí
9d165f6f56
Start version suffixes at 1 ( #5008 )
...
* Rename original filepath to v0
* Clean-up
* Suggestions from code review
* Revert renaming. Start version number at 1
* Add ModelCheckpoint.STARTING_VERSION
* Apply suggestions from code review
Co-authored-by: Rohit Gupta <rohitgr1998@gmail.com>
* Add note about class attributes
* Update CHANGELOG
* Fix doc
Co-authored-by: Rohit Gupta <rohitgr1998@gmail.com>
2021-01-26 17:29:34 -05:00
Jirka Borovec
dee5553b2b
move to Pages dir ( #4869 )
...
* folders
* common / advanced / extensions
* paths
* flake8
* isort
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2021-01-26 15:07:07 -05:00
Jirka Borovec
86d905c205
hotfix: skip unsupported metric compostions ( #5664 )
...
* skip PT unsupported compositions
* flake8
2021-01-26 20:24:15 +01:00
Justus Schock
8c55a08e85
Compositional metrics ( #5464 )
...
* implement compositional metrics
* implement composition functions for metrics
* test compositions
* docs
* pytest
* pep8
* fix argument resolution
* return all kwargs if filtering not possible
* fix typo
* implement hashing
* Update pytorch_lightning/metrics/compositional.py
Co-authored-by: Nicki Skafte <skaftenicki@gmail.com>
* Update docs/source/metrics.rst
Co-authored-by: Nicki Skafte <skaftenicki@gmail.com>
* add representation
* Apply suggestions from code review
* Update docs/source/metrics.rst
Co-authored-by: Nicki Skafte <skaftenicki@gmail.com>
* chlog
* flake8
Co-authored-by: Nicki Skafte <skaftenicki@gmail.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Co-authored-by: Jirka Borovec <jirka.borovec@seznam.cz>
2021-01-26 11:56:12 -05:00
Jirka Borovec
4e7e1dffe8
chlog
2021-01-26 14:57:34 +01:00
Jirka Borovec
2b71acc033
fix logging test
2021-01-26 14:57:34 +01:00
Jirka Borovec
53b0ae49b9
fix imports / isort / flake8
2021-01-26 14:57:34 +01:00
Sean Naren
942488b279
update CHANGELOG.md ( #5482 )
...
(cherry picked from commit 652df1886a
)
2021-01-26 14:29:48 +01:00
SeanNaren
f33db67695
Fix merge _module_available
2021-01-26 14:29:47 +01:00
Jirka Borovec
17cf6b47ad
drop duplicated func _module_available
2021-01-26 14:29:47 +01:00
SeanNaren
df3c170b2c
Fix imports & issues in lightning optimizer refactor merge
2021-01-26 14:29:47 +01:00
Jirka Borovec
bee7d31d44
ci: update recurent events ( #5480 )
...
* ci: update recurent events
* split events
* .
* .
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
(cherry picked from commit c00d5709c4
)
2021-01-26 14:29:47 +01:00
Jirka Borovec
8db2b2defd
update nightly & upgrade Twine ( #5458 )
...
* update used Twine
* .
* .
* install
* install
* .
* .
* .
* .
* .
* .
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
(cherry picked from commit 9611a7f897
)
2021-01-26 14:29:47 +01:00
SeanNaren
a80e37b95b
Add hydra experimental to correct location
2021-01-26 14:29:47 +01:00
chaton
8e75f2cde0
bugfix: Resolve interpolation bug with Hydra ( #5406 )
...
* resolve bug
* Apply suggestions from code review
* resolve package import
* resolve import
* update on comments
* update on comments
* hacky fix
* update
* exit
* update
* to_container
* typo
* resolve import
* update
* resolve pep8
Co-authored-by: Jirka Borovec <Borda@users.noreply.github.com>
Co-authored-by: Sean Naren <sean.narenthiran@gmail.com>
(cherry picked from commit bb5031b3bf
)
2021-01-26 14:29:47 +01:00
SeanNaren
127e04124d
Fix merge issue
2021-01-26 14:29:47 +01:00
chaton
0435e23a64
deprecate enable_pl_optimizer as it is not restored properly ( #5244 )
...
* update
* clean test
* still in progress
* udpdate test
* update
* update
* resolve flake
* add test for zero_grad
* update
* works without accumulated_grad
* update
* update
* resolve amp
* revert back to True
* update
* clean tests
* cleaned out
* typo
* update test
* git repare bug
* remove print
* udpate
* Fix formatting/optimizer imports
* Refactor the test for cleanliness
* Add vanilla model to the test, better var names
* Fixed var names, let's clean up these mock tests
* repare test
* update test
* resolve flake8
* add manual_optimization
* update tests
* resolve flake8
* add random accumulate_grad_batches
* improve test
* Update tests/trainer/optimization/test_parity_automatic_optimization.py
Co-authored-by: Jirka Borovec <Borda@users.noreply.github.com>
* Update tests/trainer/optimization/test_parity_automatic_optimization.py
Co-authored-by: Jirka Borovec <Borda@users.noreply.github.com>
* update
* clean tests
* correct bug
* Apply suggestions from code review
* format
* adress comments
* update on comments
* wip
* typo
* depreceate enable_pl_optimizer
* resolve latest bugs
* update
* resolve merge
* add comment
* Update pytorch_lightning/core/lightning.py
Co-authored-by: Jirka Borovec <Borda@users.noreply.github.com>
* Update tests/deprecated_api/test_remove_1-3.py
Co-authored-by: Jirka Borovec <Borda@users.noreply.github.com>
* Update pytorch_lightning/trainer/connectors/optimizer_connector.py
Co-authored-by: Jirka Borovec <Borda@users.noreply.github.com>
* Update pytorch_lightning/trainer/trainer.py
Co-authored-by: Jirka Borovec <Borda@users.noreply.github.com>
* Update pytorch_lightning/trainer/trainer.py
Co-authored-by: Jirka Borovec <Borda@users.noreply.github.com>
* Update tests/trainer/optimization/test_parity_automatic_optimization.py
Co-authored-by: Jirka Borovec <Borda@users.noreply.github.com>
* update on comments
* update restore
* add a property
* remove setstate as not needed anymore
* update test
* provide optimizer to on_before_zero_grad
* update on comments
* update on comments
* Update pytorch_lightning/trainer/trainer.py
Co-authored-by: Adrian Wälchli <aedu.waelchli@gmail.com>
* Update tests/trainer/optimization/test_parity_automatic_optimization.py
Co-authored-by: Adrian Wälchli <aedu.waelchli@gmail.com>
* Update tests/trainer/optimization/test_parity_automatic_optimization.py
Co-authored-by: Adrian Wälchli <aedu.waelchli@gmail.com>
* Update tests/trainer/optimization/test_parity_automatic_optimization.py
Co-authored-by: Adrian Wälchli <aedu.waelchli@gmail.com>
* mofidy import
* update changelog
* resolve flake8
* update
* update
* clean doc
Co-authored-by: SeanNaren <sean@grid.ai>
Co-authored-by: Ubuntu <ubuntu@ip-172-31-62-109.ec2.internal>
Co-authored-by: Jirka Borovec <Borda@users.noreply.github.com>
Co-authored-by: Jirka Borovec <jirka.borovec@seznam.cz>
Co-authored-by: Adrian Wälchli <aedu.waelchli@gmail.com>
Co-authored-by: Sean Naren <sean.narenthiran@gmail.com>
(cherry picked from commit f2e99d617f
)
2021-01-26 14:29:46 +01:00
ananthsub
cccbcc5420
[docs] Add ananthsub to core ( #5476 )
...
* Update test_manual_optimization.py
* Update governance.rst
* Update test_manual_optimization.py
* Update test_manual_optimization.py
(cherry picked from commit d30e316a35
)
2021-01-26 14:28:47 +01:00
Sean Naren
0c370ade51
[BUG] Check environ before selecting a seed to prevent warning message ( #4743 )
...
* Check environment var independently to selecting a seed to prevent unnecessary warning message
* Add if statement to check if PL_GLOBAL_SEED has been set
* Added seed test to ensure that the seed stays the same, in case
* if
* Delete global seed after test has finished
* Fix code, add tests
* Ensure seed does not exist before tests start
* Refactor test based on review, add log call
* Ensure we clear the os environ in patched dict
Co-authored-by: Jirka Borovec <Borda@users.noreply.github.com>
Co-authored-by: Carlos Mocholí <carlossmocholi@gmail.com>
Co-authored-by: chaton <thomas@grid.ai>
(cherry picked from commit 635df27880
)
2021-01-26 14:28:47 +01:00
Jirka Borovec
ee934de824
populate some more legacy checkpoints ( #5457 )
...
* populate some more legacy checkpoints
* .
* pt freeze
* .
* skip
Co-authored-by: chaton <thomas@grid.ai>
(cherry picked from commit f065ea65bf
)
2021-01-26 14:28:47 +01:00
ananthsub
b4d1129096
Add automatic optimization property setter to lightning module ( #5169 )
...
* add automatic optimization property setter to lightning module
* Update test_manual_optimization.py
Co-authored-by: chaton <thomas@grid.ai>
(cherry picked from commit 87482935a3
)
2021-01-26 14:28:47 +01:00
Jirka Borovec
fd49795090
GH action - auto-update PRs ( #5451 )
...
* GH action - auto-update PRs
* .
(cherry picked from commit 92bbf2fdd6
)
2021-01-26 14:28:47 +01:00
Poons
defbeeccd3
fix typos in validation_step and test_step docs ( #5438 )
...
* fixed docs in lightning.py
* few more
Co-authored-by: Rohit Gupta <rohitgr1998@gmail.com>
Co-authored-by: Nicki Skafte <skaftenicki@gmail.com>
(cherry picked from commit 499d5031e8
)
2021-01-26 14:28:47 +01:00
Jirka Borovec
64b701f72e
GH action - label conflicts ( #5450 )
...
* GH action - label conflicts
* .
* trigger
* trigger
* .
(cherry picked from commit f1e28d1e43
)
2021-01-26 14:28:47 +01:00
chaton
f422d93071
[bugfix] Logging only on `not should_accumulate()` during training ( #5417 )
...
* resolve bug
* resolve tests
* update
* Update tests/loggers/test_tensorboard.py
Co-authored-by: Carlos Mocholí <carlossmocholi@gmail.com>
Co-authored-by: Carlos Mocholí <carlossmocholi@gmail.com>
(cherry picked from commit a053d758d0
)
2021-01-26 14:28:47 +01:00