Merge pull request #6724 from freqtrade/pre-commit-additional_updates
Check pre-commit verison updates
This commit is contained in:
		
							
								
								
									
										25
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										25
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							| @@ -100,7 +100,7 @@ jobs: | ||||
|  | ||||
|     - name: Mypy | ||||
|       run: | | ||||
|         mypy freqtrade scripts | ||||
|         mypy freqtrade scripts tests | ||||
|  | ||||
|     - name: Discord notification | ||||
|       uses: rjstone/discord-webhook-notify@v1 | ||||
| @@ -255,7 +255,7 @@ jobs: | ||||
|  | ||||
|     - name: Mypy | ||||
|       run: | | ||||
|         mypy freqtrade scripts | ||||
|         mypy freqtrade scripts tests | ||||
|  | ||||
|     - name: Discord notification | ||||
|       uses: rjstone/discord-webhook-notify@v1 | ||||
| @@ -265,6 +265,21 @@ jobs: | ||||
|           details: Test Failed | ||||
|           webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} | ||||
|  | ||||
|   mypy_version_check: | ||||
|     runs-on: ubuntu-20.04 | ||||
|     steps: | ||||
|     - uses: actions/checkout@v3 | ||||
|  | ||||
|     - name: Set up Python | ||||
|       uses: actions/setup-python@v3 | ||||
|       with: | ||||
|         python-version: 3.9 | ||||
|  | ||||
|     - name: pre-commit dependencies | ||||
|       run: | | ||||
|         pip install pyaml | ||||
|         python build_helpers/pre_commit_update.py | ||||
|  | ||||
|   docs_check: | ||||
|     runs-on: ubuntu-20.04 | ||||
|     steps: | ||||
| @@ -277,7 +292,7 @@ jobs: | ||||
|     - name: Set up Python | ||||
|       uses: actions/setup-python@v3 | ||||
|       with: | ||||
|         python-version: 3.8 | ||||
|         python-version: 3.9 | ||||
|  | ||||
|     - name: Documentation build | ||||
|       run: | | ||||
| @@ -304,7 +319,7 @@ jobs: | ||||
|  | ||||
|   # Notify only once - when CI completes (and after deploy) in case it's successfull | ||||
|   notify-complete: | ||||
|     needs: [ build_linux, build_macos, build_windows, docs_check ] | ||||
|     needs: [ build_linux, build_macos, build_windows, docs_check, mypy_version_check ] | ||||
|     runs-on: ubuntu-20.04 | ||||
|     steps: | ||||
|  | ||||
| @@ -325,7 +340,7 @@ jobs: | ||||
|           webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} | ||||
|  | ||||
|   deploy: | ||||
|     needs: [ build_linux, build_macos, build_windows, docs_check ] | ||||
|     needs: [ build_linux, build_macos, build_windows, docs_check, mypy_version_check ] | ||||
|     runs-on: ubuntu-20.04 | ||||
|  | ||||
|     if: (github.event_name == 'push' || github.event_name == 'schedule' || github.event_name == 'release') && github.repository == 'freqtrade/freqtrade' | ||||
|   | ||||
| @@ -11,6 +11,13 @@ repos: | ||||
|     rev: "v0.942" | ||||
|     hooks: | ||||
|       - id: mypy | ||||
|         exclude: build_helpers | ||||
|         additional_dependencies: | ||||
|           - types-cachetools==5.0.1 | ||||
|           - types-filelock==3.2.5 | ||||
|           - types-requests==2.27.20 | ||||
|           - types-tabulate==0.8.7 | ||||
|           - types-python-dateutil==2.8.12 | ||||
|         # stages: [push] | ||||
|  | ||||
|   - repo: https://github.com/pycqa/isort | ||||
|   | ||||
							
								
								
									
										42
									
								
								build_helpers/pre_commit_update.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								build_helpers/pre_commit_update.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,42 @@ | ||||
| # File used in CI to ensure pre-commit dependencies are kept uptodate. | ||||
|  | ||||
| import sys | ||||
| from pathlib import Path | ||||
|  | ||||
| import yaml | ||||
|  | ||||
|  | ||||
| pre_commit_file = Path('.pre-commit-config.yaml') | ||||
| require_dev = Path('requirements-dev.txt') | ||||
|  | ||||
| with require_dev.open('r') as rfile: | ||||
|     requirements = rfile.readlines() | ||||
|  | ||||
| # Extract types only | ||||
| type_reqs = [r.strip('\n') for r in requirements if r.startswith('types-')] | ||||
|  | ||||
| with pre_commit_file.open('r') as file: | ||||
|     f = yaml.load(file, Loader=yaml.FullLoader) | ||||
|  | ||||
|  | ||||
| mypy_repo = [repo for repo in f['repos'] if repo['repo'] | ||||
|              == 'https://github.com/pre-commit/mirrors-mypy'] | ||||
|  | ||||
| hooks = mypy_repo[0]['hooks'][0]['additional_dependencies'] | ||||
|  | ||||
| errors = [] | ||||
| for hook in hooks: | ||||
|     if hook not in type_reqs: | ||||
|         errors.append(f"{hook} is missing in requirements-dev.txt.") | ||||
|  | ||||
| for req in type_reqs: | ||||
|     if req not in hooks: | ||||
|         errors.append(f"{req} is missing in pre-config file.") | ||||
|  | ||||
|  | ||||
| if errors: | ||||
|     for e in errors: | ||||
|         print(e) | ||||
|     sys.exit(1) | ||||
|  | ||||
| sys.exit(0) | ||||
| @@ -23,7 +23,7 @@ class InformativeData: | ||||
| def informative(timeframe: str, asset: str = '', | ||||
|                 fmt: Optional[Union[str, Callable[[Any], str]]] = None, | ||||
|                 *, | ||||
|                 candle_type: Optional[CandleType] = None, | ||||
|                 candle_type: Optional[Union[CandleType, str]] = None, | ||||
|                 ffill: bool = True) -> Callable[[PopulateIndicators], PopulateIndicators]: | ||||
|     """ | ||||
|     A decorator for populate_indicators_Nn(self, dataframe, metadata), allowing these functions to | ||||
|   | ||||
| @@ -110,7 +110,7 @@ class IStrategy(ABC, HyperStrategyMixin): | ||||
|     # Class level variables (intentional) containing | ||||
|     # the dataprovider (dp) (access to other candles, historic data, ...) | ||||
|     # and wallets - access to the current balance. | ||||
|     dp: Optional[DataProvider] | ||||
|     dp: DataProvider | ||||
|     wallets: Optional[Wallets] = None | ||||
|     # Filled from configuration | ||||
|     stake_currency: str | ||||
|   | ||||
| @@ -26,6 +26,4 @@ types-cachetools==5.0.1 | ||||
| types-filelock==3.2.5 | ||||
| types-requests==2.27.20 | ||||
| types-tabulate==0.8.7 | ||||
|  | ||||
| # Extensions to datetime library | ||||
| types-python-dateutil==2.8.12 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user